Stop running the Linux test suite twice per CI run - #619
Mikola Lysenko (mikolalysenko) merged 1 commit into
Conversation
The `coverage` job already runs `cargo test --workspace` on ubuntu (debug, default features) under cargo-llvm-cov and fails on any test failure, so `test (ubuntu-latest)` ran every Linux test a second time: ~11.5 job-minutes per CI run for no extra signal. Drop the ubuntu leg from `test` and give `coverage` what that leg had on top: Go 1.24 and vexctl on PATH, the SOCKET_PATCH_GO_E2E_* env that turns the real-go suites' soft skips into failures, and `--no-fail-fast`. Jobs that waited on `test` now also wait on `coverage`, so they stay gated on the Linux results; `test (windows)` remains the critical path, so wall-clock is unchanged. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0186JrVwWG4Rs1xfqZ2v3eS6
|
bugbot run Generated by Claude Code |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit ee253ce. Configure here.
|
[burn-down agent] Labeled Ready for review at
Generated by Claude Code |
|
Reviewed Verified the Linux debug/default-feature run remains mandatory in The exact-head coverage log confirms 9,695 passed and 252 ignored, including all 70 real-Go tests and 17 VEX tests. Current doctests contain no executable cases, and the unchanged Linux release job still runs them. Live branch rules do not require the removed Validation used workflow structure, primary cargo-llvm-cov source and completed CI logs; no full local rebuild. Actionlint introduced no diagnostics relative to the base. Merge check and exact-head Bugbot are clean. Final check: 338 successful checks, 6 skipped; all six workflows completed successfully, no pending checks or unresolved review threads. This recommendation covers the commit above; human approval is still required. |
Problem
ci.ymlran the full Linux test suite twice per CI run:test (ubuntu-latest):cargo test --workspace --no-fail-fast(debug profile, default features).coverage(ubuntu-latest):cargo llvm-cov --workspace --no-report. This is the samecargo test --workspace(debug profile, default features), instrumented, and it fails the job on any test failure.The test selection is the same. No code checks
cfg(coverage), and the workspace has no doctests that execute:cargo test --workspace --docruns 0 tests, plus 1 that is ignored. So the ubuntutestleg only added the following, which this PR moves intocoverage:PATHSOCKET_PATCH_GO_E2E_REQUIRED=1--no-fail-fastEvidence: 15 green CI runs on 2026-10-02 (runs 37053267702 … 37070816606, PR and main pushes).
test (ubuntu-latest)coverageBetween 14:53 and 22:25 UTC that day, 47 CI runs completed. At ~11.5 job-minutes each, that is about 540 runner-minutes in 7.5 h spent re-running tests
coveragealready ran. Neither job is on the critical path:test (windows-latest)takes ~29 min andtest-release~20 min.Fix
testmatrix:[macos-latest, windows-latest]. The ubuntu leg is gone.coveragenow has what that leg had on top of its own setup:actions/setup-go1.24, the same SHA pin.test's step.SOCKET_PATCH_GO_E2E_REQUIRED=1andSOCKET_PATCH_GO_E2E_VERSION=1.24.--no-fail-fast.needs: testnow hasneeds: [test, coverage]. The same goes for[test, e2e-build], which becomes[test, coverage, e2e-build]. Those jobs stay gated on the Linux results, andcoveragefinishes long beforetest (windows), so no job starts later.coveragereports numbers without gating on them, but it does gate on test failures.Where the removed leg's tests still run
Every test that ran in
test (ubuntu-latest)now runs incoverage, on every PR and every main push. That includes:e2e_vexvexctl validation, whichcoverageused to skip because vexctl wasn't on PATH.macOS and Windows are unchanged.
Check-name change for the owner: the
test (ubuntu-latest)check disappears.mainhas no required status checks (no branch protection; the rulesets only require reviews, signatures, linear history and the GHA audit workflow), so nothing blocks on it.Proof
CI on this head: CI run 37075059143 is green.
coverage(now gating Linux, with Go and vexctl) took 11.6 min,test (macos-latest)12.6 min andtest (windows-latest)26 min. Every other workflow on ee253ce is green, and Bugbot found no issues.cargo llvm-cov --no-fail-fast --no-reportran locally with vexctl v0.3.0 on PATH, Go 1.24.7, andSOCKET_PATCH_GO_E2E_REQUIRED=1 SOCKET_PATCH_GO_E2E_VERSION=1.24. Results:e2e_golang_build: 18 passede2e_golang_hosted_build: 19 passede2e_golang_hosted_state: 22 passede2e_golang_workspace_build: 11 passede2e_vex: 17 passedThe
--no-fail-fastflag is accepted by cargo-llvm-cov 0.8.7 (cargo llvm-cov --help).Coverage of non-test files cannot drop. The removed job never fed the coverage report, and
coveragenow runs strictly more (vexctl paths, required Go suites).actionlint1.7.7 reports the same 6 findings before and after. All 6 are existing false positives: actionlint doesn't understand thesteps: *anchorYAML aliases. No new findings.🤖 Generated with Claude Code
https://claude.ai/code/session_0186JrVwWG4Rs1xfqZ2v3eS6
Generated by Claude Code