From ddfc03a7b03e32b13578992d386dd5114517c221 Mon Sep 17 00:00:00 2001 From: Kir Kolyshkin Date: Tue, 30 Jul 2024 16:31:39 -0700 Subject: [PATCH] ci: add some basic GHA checks Signed-off-by: Kir Kolyshkin --- .github/workflows/test.yml | 82 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..3bb40ed --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,82 @@ +name: test +on: + push: + tags: + - v* + branches: + - main + - release-* + pull_request: +env: + GO_VERSION: 1.22.x +permissions: + contents: read + +jobs: + lint: + timeout-minutes: 30 + permissions: + contents: read + pull-requests: read + checks: write # to allow the action to annotate code in the PR. + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 2 + - uses: actions/setup-go@v5 + with: + go-version: "${{ env.GO_VERSION }}" + - name: install deps + run: | + sudo apt -q update + sudo apt -qy install libseccomp-dev + - uses: golangci/golangci-lint-action@v6 + with: + version: v1.57 + # Extra linters, only checking new code from a pull request. + - name: lint-extra + if: github.event_name == 'pull_request' + run: | + golangci-lint run --config .golangci-extra.yml --new-from-rev=HEAD~1 + + go-fix: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 2 + - uses: actions/setup-go@v5 + with: + go-version: "${{ env.GO_VERSION }}" + - name: run go fix + run: | + go fix ./... + git diff --exit-code + + codespell: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + - name: install deps + # Version of codespell bundled with Ubuntu is way old, so use pip. + run: pip install --break-system-packages codespell==v2.3.0 + - name: run codespell + run: codespell + + space-at-eol: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + - run: rm -fr vendor + - run: if git -P grep -I -n '\s$'; then echo "^^^ extra whitespace at EOL, please fix"; exit 1; fi + + unit: + runs-on: ubuntu-24.04 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version: "${{ env.GO_VERSION }}" + - name: run go test + run: go test -v ./...