You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
ci: shard cmd/server Go tests and split the Go job (follow-up to #434/#436) #445
After #436 sharded Playwright E2E (3 shards of about 10 min each), the ✅ Go Build & Test job is the CI critical path at about 22 minutes. Measured step durations on a recent green master run:
cmd/server is one large package, so go test ./... parallelism across packages does not help. Nearly all the time is that single package.
Proposal
Measure first. Run the cmd/server tests with go test -json and record per-test durations from at least 3 green runs. Put the top-N table in the PR. Look for outliers (time.Sleep, real timeouts, large fixtures, -race overhead) that can be fixed outright.
Shard cmd/server tests into N parallel jobs (start with 3–4), balanced by measured duration with a longest-first assignment. Each job runs go test -run '^(TestA|TestB|…)$' from a checked-in manifest, like scripts/e2e-shards.json from ci: measure and shard Playwright E2E suites (#434) #436.
Move the other steps into their own jobs, running in parallel: the ingestor tests, test-all.sh/JS unit tests and the small library checks.
Coverage: each shard writes its own coverprofile. A small merge job combines them so the coverage report and badges stay correct.
Keep the fork guards (9 in deploy.yml, 1 in release-fast-path.yml). No publish or deploy from the fork. Do not touch squad-*.yml.
Acceptance
The per-test timing table and the shard manifest are in the PR.
PR-triggered runs show all shards green, and the Go critical path drops well below the ~19 min server step. Report before/after wall time and total runner minutes for at least two runs.
The unassigned-test guard and the fail-closed gate are covered by tests, with mutants shown red.
The coverage percentage is unchanged (within noise) versus before.
Activity
test(ci): keep one coverage block uncovered in every shard fixture (#445
ci: use the default shallow checkout in the split Go and script jobs (#…
ci: run unpinned Go server tests in a catch-all shard (#445)
Merge pull request #446 from dborup/codex/issue-445-go-shards
dborup commentedon Oct 14, 2026
Fixed by #446 (merged as
5025e17c36204382a6fb4839545329426af23211).