Commit f47bf54
ci: cut wasted minutes from measurement_id and WASM jobs (#8776)
## Summary
Three targeted fixes from profiling recent CI runs (job/step timings +
logs from PR runs of `Linters and Tests`):
- **`measurement_id golden vectors`: 6.2 min → ~20 s.** The `setup-uv`
action defaults to `uv sync --all-extras --dev`, which builds the
vortex-data PyO3 extension via maturin on an uncached `ubuntu-latest`
runner — ~6 min of the job (verified in job logs: `Run uv sync
--all-extras --dev` → `Building vortex-data`). The test itself takes ~1
s and uses `uv run --no-project`, so it needs no workspace packages.
Pass `sync: false`, matching the existing `python-cuda-test` job.
- **WASM integration smoke test: ~5.2 min → expected ~1–2 min.** It was
the only Rust-compiling job left on plain `ubuntu-latest` with no
compiler cache; ~4.5 min is a cold `cargo build`. Moved to the prebuilt
runs-on image with S3 sccache, following the same pattern as the other
build jobs (fork fallback to `ubuntu-latest` preserved; `rustup target
add wasm32-wasip1` mirrors what the wasm32 build job does).
- **Windows sccache observability.** `Rust tests (windows-x64)` is the
ci.yml PR critical path (consistently 6.8–7.7 min across the last 8 PR
runs, ~5 min of it compile). The sccache server demonstrably starts, but
logs give no way to see hit rates. Added an `sccache --show-stats` step
(`if: always()`, main repo only) so cache effectiveness on Windows is
visible per run.
## Not included (infra-side observations from the same investigation)
- Codspeed PR runs take 9–14 min but shards compute for only 0.8–4 min —
they queue 5.5–9.8 min for `amd64-medium` runners while concurrent
ci.yml jobs get runners in <1 min. One PR push requests ~26 runs-on VMs
at once; this looks like a concurrent-instance/pool cap in
`.github-private` (this repo's `runs-on.yml` only defines images).
Raising capacity there, or consolidating the 8 Codspeed shards to 4,
would cut the largest remaining chunk of PR wall clock.
- The Windows pool uses `m8i-flex.2xlarge` (8 vCPU); a size bump would
directly shrink the PR critical path since compile dominates and linking
53 test binaries is uncacheable.
## Checks
- `yamllint --strict -c .yamllint.yaml .github/workflows/ci.yml` —
passes.
- Workflow-only change; no Rust/Python code touched, so no cargo/pytest
checks were run per repo guidance. The WASM job change is best validated
by this PR's own CI run.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Signed-off-by: Andrew Duffy <andrew@a10y.dev>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>1 parent 2cade61 commit f47bf54
1 file changed
Lines changed: 20 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
146 | 146 | | |
147 | 147 | | |
148 | 148 | | |
| 149 | + | |
| 150 | + | |
149 | 151 | | |
| 152 | + | |
| 153 | + | |
150 | 154 | | |
151 | 155 | | |
152 | 156 | | |
| |||
415 | 419 | | |
416 | 420 | | |
417 | 421 | | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
418 | 426 | | |
419 | 427 | | |
420 | 428 | | |
| |||
584 | 592 | | |
585 | 593 | | |
586 | 594 | | |
587 | | - | |
588 | 595 | | |
| 596 | + | |
| 597 | + | |
| 598 | + | |
| 599 | + | |
589 | 600 | | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
590 | 605 | | |
591 | | - | |
| 606 | + | |
592 | 607 | | |
593 | | - | |
| 608 | + | |
594 | 609 | | |
| 610 | + | |
| 611 | + | |
595 | 612 | | |
596 | 613 | | |
597 | 614 | | |
| |||
0 commit comments