ci: parallel suite shards, main-only criterion benches, dedup gates - #93
Merged
Conversation
Measured on a recent main run (job test = 39 min wall-clock): - Criterion benchmarks (15.2 min) were continue-on-error/informational but blocked every PR's wall-clock. Moved to a main-only bench job — artifact cadence unchanged (every main push), PRs no longer wait for them. - The named gate steps' tests ran twice: in their gate and again inside 'Run all tests' (the filter only excluded the perf binaries). The suite filter now excludes every gate's tests; verified with cargo nextest list: suite 6695 + gates 125 = 6820 = old combined filter, each test runs once. - The remaining ~6700-test suite is sharded 2-way via nextest --partition (rust-cache makes the per-shard recompile mostly cache hits). - Removed the duplicated 'Install mold linker' step in lint and test. Expected PR wall-clock: ~39 min → ~16 min (gates ~9 min, shards ~7 min in parallel). Trade-off: more total runner-minutes (per-shard compile). Note: check names change — new required checks should be 'suite (1)' and 'suite (2)'; 'test', 'lint', 'web' are unchanged.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Medido sobre una corrida reciente de main: el job
testtardaba 39 min de wall-clock (lint 1 min, web 3.5 min). Este PR lo baja a ~16 min.Cambios
continue-on-error/informativos pero bloqueaban el wall-clock de cada PR. Ahora corren en un jobbenchsolo en pushes a main — la cadencia de artifacts no cambia.cargo nextest list: suite 6695 + gates 125 = 6820 = filtro combinado anterior — cada test corre exactamente una vez.cargo nextest run --partition count:N/2) en jobs paralelos; rust-cache hace que la recompilación por shard sea mayormente hits.Resultado esperado
Wall-clock de PR: ~39 min → ~16 min (gates ~9 min + shards ~7 min en paralelo). Costo: más runner-minutos totales (compilación duplicada por shard).
Nota
Los nombres de checks cambian: hay que marcar
suite (1)ysuite (2)como required en branch protection;test,lintywebno cambian. El jobbenchse saltea en PRs (skipped = success para required checks).