Repository navigation
fix: pin linter to v2.1.6 compatible with go 1.24, drop dead fuzz check #135
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| permissions: | |
| contents: read | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| # The one gate: the same `make check` a developer runs locally. The linter | |
| # is installed at the pinned version so a missing tool fails the job | |
| # instead of silently skipping, and a new linter release cannot turn a | |
| # green tree red on its own. | |
| check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-go@v7 | |
| with: | |
| go-version-file: go.mod | |
| cache: true | |
| - name: Install golangci-lint (pinned) | |
| run: go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.1.6 | |
| - name: make check | |
| run: make check | |
| - name: CLI smoke test | |
| run: make smoke | |
| test: | |
| strategy: | |
| # Run every platform even if one fails: on a cross-platform TUI, a | |
| # fail-fast matrix hides the platform that actually broke. | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-go@v7 | |
| with: | |
| go-version-file: go.mod | |
| cache: true | |
| - name: go vet | |
| run: go vet ./... | |
| - name: go test | |
| run: go test ./... -race -count=1 | |
| # Cross-compilation is checked explicitly: the README promises no cgo in the | |
| # core path and release artifacts are built CGO-free for six targets. | |
| # This is compile evidence only; runtime behaviour is covered per-OS above. | |
| cross-build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-go@v7 | |
| with: | |
| go-version-file: go.mod | |
| cache: true | |
| - name: cross-compile release targets | |
| run: make cross |