Skip to content

Commit

Permalink
Pre-commit and linting (#112)
Browse files Browse the repository at this point in the history
Signed-off-by: Jeff McCoy <code@jeffm.us>
  • Loading branch information
RothAndrew authored and jeff-mccoy committed Oct 19, 2021
1 parent ebb6a00 commit 35c63b9
Show file tree
Hide file tree
Showing 28 changed files with 132 additions and 85 deletions.
7 changes: 4 additions & 3 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@ trim_trailing_whitespace = true
max_line_length = 120
tab_width = 4

[{Makefile,go.mod,go.sum,*.go,.gitmodules}]
indent_style = tab
indent_size = 4

[*.md]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab
8 changes: 4 additions & 4 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ stages:
only:
- master
- merge_requests
- tags
- tags

compile:
only:
only:
- branches
- merge_requests
- tags
Expand Down Expand Up @@ -42,7 +42,7 @@ package:
- echo "PACKAGE_JOB_ID=$CI_JOB_ID" >> job.env
artifacts:
reports:
dotenv: job.env
dotenv: job.env
paths:
- build/

Expand All @@ -54,7 +54,7 @@ e2e:
artifacts: true
tags:
- bigbang
- packages
- packages
before_script:
- yum install openssh-clients -y
- eval $(ssh-agent -s)
Expand Down
34 changes: 34 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.0.1
hooks:
- id: check-added-large-files
- id: check-merge-conflict
- id: detect-aws-credentials
args:
- "--allow-missing-credentials"
- id: detect-private-key
exclude: "^examples/big-bang/template/bigbang/values.yaml$"
- id: end-of-file-fixer
- id: fix-byte-order-marker
- id: trailing-whitespace
args: [--markdown-linebreak-ext=md]
- repo: https://github.com/sirosen/fix-smartquotes
rev: 0.2.0
hooks:
- id: fix-smartquotes
- repo: https://github.com/dnephin/pre-commit-golang
rev: v0.4.0
hooks:
- id: go-fmt
# Commenting this one out for now since it fails
## Normally we wouldn't need to do a local hook but we need to modify the shell script that gets run to first change directories into the `cli` folder
# - repo: local
# hooks:
# - id: golangci-lint
# name: golangci-lint
# entry: hooks/run-golangci-lint.sh
# types: [ go ]
# language: script
# pass_filenames: false
# description: "Runs `golangci-lint`, requires https://github.com/golangci/golangci-lint"
2 changes: 1 addition & 1 deletion .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,4 @@
},

]
}
}
15 changes: 14 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,19 @@ Here's what a typical "day in the life" of a Zarf developer might look like. Kee

This section dives deeper into how we test Zarf

### Pre-Commit Hooks and Linting

In this repo we use [pre-commit](https://pre-commit.com/) hooks for automated validation and linting. The CI pipeline will validate that all of the hooks pass so we strongly recommend that you install the hooks locally or you'll be spending a lot of time manually fixing issues that could be fixed automatically very quickly.

#### Pre-Commit Prerequisites

1. Install [pre-commit](https://pre-commit.com/)
1. Install [go](https://golang.org/)
1. Install [golangci-lint](https://github.com/golangci/golangci-lint)
1. Run `pre-commit install` in the repo to install the pre-commit hooks. This will make the hooks run automatically each time you `git commit`. If you want to skip the hooks for any reason you can run `git commit --no-verify` to skip them.

> **HINT:** *Consider [automatically enabling the hooks in every Git repository](https://pre-commit.com/#automatically-enabling-pre-commit-on-repositories)*
### End2End Testing

Our E2E tests utilize [Terratest](https://terratest.gruntwork.io/). They create real infrastructure in AWS that the tests get run on. By doing this we are able to make the test environments ephemeral and allow them to be run in parallel so that we can do more testing more quickly.
Expand All @@ -50,4 +63,4 @@ We're still working on building out the test suite. If you want to help check ou
- [#99](https://github.com/defenseunicorns/zarf/issues/99): Writing additional tests
- [#100](https://github.com/defenseunicorns/zarf/issues/100): Each test should be runnable locally
- [#101](https://github.com/defenseunicorns/zarf/issues/101): Run E2E tests on multiple distros
- [#102](https://github.com/defenseunicorns/zarf/issues/102): Make the E2E tests more efficient
- [#102](https://github.com/defenseunicorns/zarf/issues/102): Make the E2E tests more efficient
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@ General usage steps below. For various ways to use Zarf, see [the examples fold

[![asciicast](https://asciinema.org/a/427846.svg)](https://asciinema.org/a/427846)
### 2. Create the zarf cluster
- Move the `zarf`, `zarf-init.tar.zst` files to the system you will install the cluster to.
- Move the `zarf`, `zarf-init.tar.zst` files to the system you will install the cluster to.
- Login or sudo/su to root.
- Run `./zarf init` and follow the wizard.
[![asciicast](https://asciinema.org/a/427721.svg)](https://asciinema.org/a/427721)

### 3. Add resources to the zarf cluster
### 3. Add resources to the zarf cluster
- Following step 1b, make any necessary edits to the `zarf.yaml` file.
- Then run `./zarf package create` to produce an `zarf-package-*.tar.zst` package.
- Move the `zarf-package` into the same folder on the running zarf cluster as in step 2a.
Expand All @@ -43,10 +43,10 @@ This tool utilizes software pulled from multiple sources and _some_ of them requ
- [Iron Bank](https://registry1.dso.mil/) : Platform One's authorized, hardened, and approved container repository. ([product](https://p1.dso.mil/#/products/iron-bank/) | [pages](https://ironbank.dso.mil/) | [register](https://login.dso.mil/register))

#### Local Environment
- MacOS or Linux Operating System
- MacOS or Linux Operating System
- [`make`](https://www.gnu.org/software/make/) : We use Makefiles for build automation
- [`vagrant`](https://www.vagrantup.com/) : Easy creation and management of clean dev/test environments
- [`go`](https://golang.org/) : The programming language. Right now we are using v1.16.x
- [`go`](https://golang.org/) : The programming language. Right now we are using v1.16.x

---

Expand Down Expand Up @@ -103,7 +103,7 @@ All OS options:
- centos7
- centos8
- ubuntu
- debian
- debian
- rocky

In less than a minute, you'll have a kubernetes cluster running all the pre-requisites needed to host and deploy multiple other downstream clusters.
Expand Down
2 changes: 1 addition & 1 deletion assets/manifests/common/traefik-tls.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ spec:
redirectRegex:
regex: ^http://(.*)
replacement: https://${1}
permanent: true
permanent: true
2 changes: 1 addition & 1 deletion assets/manifests/logging/pgl-stack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,6 @@ spec:
extraVolumeMounts:
- name: journal
mountPath: /var/log/journal
readOnly: true
readOnly: true
image:
pullPolicy: Never
2 changes: 1 addition & 1 deletion assets/misc/k9s-theme.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -108,4 +108,4 @@ k9s:
bgColor: *background
indicator:
fgColor: *foreground
bgColor: *purple
bgColor: *purple
2 changes: 1 addition & 1 deletion assets/scripts/k3s-remove.sh
Original file line number Diff line number Diff line change
Expand Up @@ -96,4 +96,4 @@ rm -f /usr/local/bin/k9s
rm -f /usr/local/bin/k3s-remove.sh
rm -fr zarf-pki

echo -e '\033[0m'
echo -e '\033[0m'
2 changes: 1 addition & 1 deletion assets/scripts/k3s.service
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,4 @@ RestartSec=5s
ExecStartPre=/bin/sh -xc '! /usr/bin/systemctl is-enabled --quiet nm-cloud-setup.service'
ExecStartPre=-/sbin/modprobe br_netfilter
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/local/bin/k3s server --write-kubeconfig-mode=700
ExecStart=/usr/local/bin/k3s server --write-kubeconfig-mode=700
2 changes: 1 addition & 1 deletion cli/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ build
.env
.image-cache/
.DS_Store
bundle/
bundle/
1 change: 0 additions & 1 deletion cli/.gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,3 @@ release-from-tag:
- echo "Creating a release for $CI_COMMIT_TAG"
- release-cli create --name "Zarf CLI ${CI_COMMIT_TAG}" --tag-name "${CI_COMMIT_TAG}" --description "CLI for Zarf"
--assets-link "{\"name\":\"zarf\",\"url\":\"https://repo1.dso.mil/platform-one/big-bang/apps/product-tools/zarf/cli/-/jobs/${JOB_ID}/artifacts/raw/zarf\"}"

Loading

0 comments on commit 35c63b9

Please sign in to comment.