Problem
The full matrix ((ubuntu, macos) × (1.25, 1.26) + Foundry install + race) is the source of truth for correctness, but it takes minutes to feedback. A fast smoke lane that only runs -race on a tiny subset would cut iteration time during PR development.
Proposal
Add a separate job to .github/workflows/ci.yml:
smoke:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v6
with:
go-version: '1.26'
- uses: foundry-rs/foundry-toolchain@v1
with:
version: v1.5.1
- run: go test -race -short ./... # exercises -short flag
Mark unit tests as -short-friendly. Tests that take >1s should call if testing.Short() { t.Skip(...) }.
Acceptance criteria
- Smoke job lands in <60s wall-clock.
- Existing tests audited: any test taking >1s gates on
testing.Short().
- Non-blocking: smoke can fail; the matrix job is still required for merge. (Or make smoke required and demote the matrix to "nightly" — needs a decision in the PR.)
Problem
The full matrix (
(ubuntu, macos) × (1.25, 1.26)+ Foundry install + race) is the source of truth for correctness, but it takes minutes to feedback. A fast smoke lane that only runs-raceon a tiny subset would cut iteration time during PR development.Proposal
Add a separate job to
.github/workflows/ci.yml:Mark unit tests as
-short-friendly. Tests that take >1s should callif testing.Short() { t.Skip(...) }.Acceptance criteria
testing.Short().