build(deps): bump the go-dependencies group across 1 directory with 11 updates #654
Workflow file for this run
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 | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| permissions: | |
| contents: read | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| with: | |
| # Full history and tags so the GoReleaser dry run can build the | |
| # changelog, matching the real release. | |
| fetch-depth: 0 | |
| # This repository is public, so a committed account id, ARN, endpoint | |
| # host, address or resource id would be a disclosure. Checked before | |
| # anything else so it fails fast. | |
| - name: No cloud identifiers | |
| run: scripts/check-no-cloud-identifiers.sh | |
| - uses: actions/setup-node@v7 | |
| with: | |
| node-version: 22 | |
| # The specs under openspec/ are the source of truth this project works | |
| # from, so a malformed one is a build failure rather than a docs nit. | |
| # --all covers every spec plus every unarchived change; --strict fails on | |
| # warnings too. Run early: it is quick, and a spec problem should not wait | |
| # behind the Go build to surface. | |
| # | |
| # The version is pinned deliberately. openspec adds validation rules | |
| # between releases, and an unpinned CLI would fail unrelated pull requests | |
| # the day one lands. Bump it on purpose, with whatever spec fixes the new | |
| # rules ask for. | |
| - name: Validate specs | |
| run: npx --yes @fission-ai/openspec@1.8.0 validate --all --strict | |
| # validate checks a Purpose section exists; it cannot tell a real one | |
| # from the stub the archive step writes. This catches the stub, and | |
| # catches a new capability whose delta has no Purpose at all — which is | |
| # what mints the stub in the first place. | |
| - name: Spec purposes are filled in | |
| run: scripts/check-spec-purposes.sh | |
| - uses: actions/setup-go@v7 | |
| with: | |
| go-version-file: go.mod | |
| cache: true | |
| - name: Check formatting | |
| run: | | |
| unformatted="$(gofmt -l .)" | |
| if [ -n "$unformatted" ]; then | |
| echo "These files need gofmt:" >&2 | |
| echo "$unformatted" >&2 | |
| exit 1 | |
| fi | |
| - name: Vet | |
| run: go vet ./... | |
| - name: Test | |
| run: go test ./... -race -cover | |
| # Exercise the full release pipeline without publishing: --snapshot | |
| # builds every target (and the Homebrew formula) but skips tagging and | |
| # upload, so the release config is validated on every push and PR. | |
| - name: GoReleaser (dry run) | |
| run: curl -sfL https://goreleaser.com/static/run | bash -s -- release --snapshot --clean | |
| # The dockerised fleet example, driven end to end: real daemons, a real | |
| # supervised engine process, real auth over the network. Runs per-PR — it is | |
| # the only coverage of the fleet client against something other than a stub, | |
| # and it doubles as the example, so a break here means the example is broken. | |
| fleet-integration: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-go@v7 | |
| with: | |
| go-version-file: go.mod | |
| cache: true | |
| - name: Fleet integration test | |
| run: examples/fleet-docker/run-tests.sh | |
| # The dockerised gateway example, driven end to end: real daemons, a real | |
| # gateway process selecting, waking and keying over the network. Same | |
| # double duty as the fleet job — coverage and example at once. | |
| gateway-integration: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions/setup-go@v7 | |
| with: | |
| go-version-file: go.mod | |
| cache: true | |
| - name: Gateway integration test | |
| run: examples/gateway-docker/run-tests.sh |