diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..e330ec0 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,34 @@ +name: CI + +# The release workflow gates a tag, which is late: a broken commit sits green +# until somebody decides to publish. This runs the same checks on the way in. +# +# push is scoped to main rather than all branches for two reasons: a branch +# pushed as part of a pull request would otherwise be checked twice, and +# gh-pages holds the published Helm chart index with no Go code in it, so +# `go vet ./...` there would fail on a missing go.mod. +on: + push: + branches: [main] + pull_request: + +# A rapid series of pushes only needs the last one checked. +concurrency: + group: ci-${{ github.ref }} + cancel-in-progress: true + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-go@v5 + with: + go-version-file: go.mod + + - name: Vet + run: go vet ./... + + - name: Test + run: go test ./...