Repository navigation
chore(deps): bump golang.org/x/term from 0.45.0 to 0.47.0 #278
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: | |
| branches: [main] | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| repo-refs: | |
| name: Repo reference guard | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Check for stale/broken repo slug references | |
| run: ./scripts/check-repo-refs.sh | |
| - name: Check the version is consistent everywhere it is written down | |
| run: ./scripts/check-version.sh | |
| lint-test: | |
| name: Lint & Test | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 25 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Set up Go | |
| uses: actions/setup-go@v7 | |
| with: | |
| go-version-file: go.mod | |
| cache: true | |
| - name: Set up Node | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: "22" | |
| cache: npm | |
| cache-dependency-path: web/package-lock.json | |
| # `make web-deps`, not a bare `npm ci`: `npm ci` refuses to run at all when | |
| # web/package-lock.json does not match web/package.json. web-deps tries | |
| # `npm ci` first, reports any failure, then falls back to `npm install`. | |
| # Dependency changes must include the updated lockfile. | |
| - name: Install web deps | |
| run: make web-deps | |
| - name: Build web UI into the go:embed directory | |
| run: make ui-react | |
| - name: Install golangci-lint | |
| # `go install` (not the release install.sh + prebuilt binary) so the | |
| # linter is always built with the SAME Go toolchain this job just set | |
| # up — golangci-lint refuses to run when built with an older Go than | |
| # the module it's targeting, so a prebuilt binary silently breaks | |
| # every time the pinned toolchain in go.mod moves past it. install.sh | |
| # also matched the wrong release asset for v2.13.1 (grabbed the | |
| # .sbom.json instead of the tarball) and failed checksum verification. | |
| run: | | |
| go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.13.1 | |
| echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH" | |
| - name: make check (fmt, vet, lint, unit+race tests, web lint+build) | |
| run: make check | |
| - name: Go Build | |
| run: make build | |
| - name: golangci-lint ratchet (blocking — the baseline is zero) | |
| run: make lint-strict | |
| - name: Studio API offline smoke test | |
| run: ./scripts/e2e_prime_smoke.sh | |
| race-and-coverage: | |
| name: Race detector & coverage floor | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 35 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Set up Go | |
| uses: actions/setup-go@v7 | |
| with: | |
| go-version-file: go.mod | |
| cache: true | |
| - name: Race tests (pkg/...) | |
| run: make race | |
| # A full run has parallel workers and background probes emitting while | |
| # the run goroutine rewrites session state. No pkg/... test starts one, | |
| # which is why a currentTurn race survived `make race` indefinitely. | |
| - name: Race tests (integration suite) | |
| run: make race-e2e | |
| - name: Coverage floor | |
| run: make cover | |
| web-check: | |
| name: Web Frontend Check | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Set up Node | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: "22" | |
| cache: npm | |
| cache-dependency-path: web/package-lock.json | |
| # `make web-deps`, not a bare `npm ci`: `npm ci` refuses to run at all when | |
| # web/package-lock.json does not match web/package.json. web-deps tries | |
| # `npm ci` first, reports any failure, then falls back to `npm install`. | |
| # Dependency changes must include the updated lockfile. | |
| - name: Install web deps | |
| run: make web-deps | |
| - name: Type check | |
| run: cd web && npx tsc --noEmit | |
| - name: Build web | |
| run: cd web && npm run build | |
| pre-commit: | |
| name: Pre-commit | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 15 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Set up Go | |
| uses: actions/setup-go@v7 | |
| with: | |
| go-version-file: go.mod | |
| cache: true | |
| - name: Set up Node | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: "22" | |
| cache: npm | |
| cache-dependency-path: web/package-lock.json | |
| - name: Set up Python | |
| uses: actions/setup-python@v7 | |
| with: | |
| python-version: "3.12" | |
| # `make web-deps`, not a bare `npm ci`: `npm ci` refuses to run at all when | |
| # web/package-lock.json does not match web/package.json. web-deps tries | |
| # `npm ci` first, reports any failure, then falls back to `npm install`. | |
| # Dependency changes must include the updated lockfile. | |
| - name: Install web deps | |
| run: make web-deps | |
| - name: Build web UI into the go:embed directory | |
| run: make ui-react | |
| - name: Install golangci-lint | |
| # `go install` (not the release install.sh + prebuilt binary) so the | |
| # linter is always built with the SAME Go toolchain this job just set | |
| # up — golangci-lint refuses to run when built with an older Go than | |
| # the module it's targeting, so a prebuilt binary silently breaks | |
| # every time the pinned toolchain in go.mod moves past it. install.sh | |
| # also matched the wrong release asset for v2.13.1 (grabbed the | |
| # .sbom.json instead of the tarball) and failed checksum verification. | |
| run: | | |
| go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.13.1 | |
| echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH" | |
| - name: Run pre-commit | |
| uses: pre-commit/action@v3.0.1 |