on: [push, pull_request] jobs: check: runs-on: ubuntu-latest timeout-minutes: 15 steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: "1.23.x" - name: Check that no non-test files import Ginkgo or Gomega run: .github/workflows/no_ginkgo.sh - name: Check for //go:build ignore in .go files run: | IGNORED_FILES=$(grep -rl '//go:build ignore' . --include='*.go') || true if [ -n "$IGNORED_FILES" ]; then echo "::error::Found ignored Go files: $IGNORED_FILES" exit 1 fi - name: Check that go.mod is tidied if: success() || failure() # run this step even if the previous one failed run: | cp go.mod go.mod.orig cp go.sum go.sum.orig go mod tidy diff go.mod go.mod.orig diff go.sum go.sum.orig - name: Run code generators if: success() || failure() # run this step even if the previous one failed run: .github/workflows/go-generate.sh - name: Check that go mod vendor works if: success() || failure() # run this step even if the previous one failed run: | cd integrationtests/gomodvendor go mod vendor golangci-lint: runs-on: ubuntu-latest strategy: fail-fast: false matrix: go: [ "1.22.x", "1.23.x" ] env: GOLANGCI_LINT_VERSION: v1.62.0 name: golangci-lint (Go ${{ matrix.go }}) steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: ${{ matrix.go }} - name: golangci-lint (Linux) uses: golangci/golangci-lint-action@v6 with: args: --timeout=3m version: ${{ env.GOLANGCI_LINT_VERSION }} - name: golangci-lint (Windows) if: success() || failure() # run this step even if the previous one failed uses: golangci/golangci-lint-action@v6 env: GOOS: "windows" with: args: --timeout=3m version: ${{ env.GOLANGCI_LINT_VERSION }} - name: golangci-lint (OSX) if: success() || failure() # run this step even if the previous one failed uses: golangci/golangci-lint-action@v6 env: GOOS: "darwin" with: args: --timeout=3m version: ${{ env.GOLANGCI_LINT_VERSION }} - name: golangci-lint (FreeBSD) if: success() || failure() # run this step even if the previous one failed uses: golangci/golangci-lint-action@v6 env: GOOS: "freebsd" with: args: --timeout=3m version: ${{ env.GOLANGCI_LINT_VERSION }} - name: golangci-lint (others) if: success() || failure() # run this step even if the previous one failed uses: golangci/golangci-lint-action@v6 env: GOOS: "solaris" # some OS that we don't have any build tags for with: args: --timeout=3m version: ${{ env.GOLANGCI_LINT_VERSION }}