fix(ci): bound inner test jobs while preserving concurrency and coverage - #1016
Merged
Merged
Conversation
Cap each inner test job at 150 discovered names while preserving exhaustive external selection, worker counts, races, and existing timeouts. Keep existing regression inputs and add coverage for bounded stable partitions and large external composition. CI runtime improvement remains subject to matrix validation.
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.
macOS oldstable external shard 1 exhausted the existing 20-minute timeout in both checks jobs on main CI run 34761114704. Large packages currently partition only by process worker count, leaving hundreds of ordinary tests sharing one timeout.
Add a configurable 150-name cap for balanced inner jobs, independent of process concurrency, and specify it explicitly in CI. The checks package now uses six jobs per external shard rather than two, with maximum groups of 128/138 names rather than 383/412. All discovered ordinary tests, stable external assignments, race detection, worker counts, benchmarks, and existing timeouts remain covered. Existing regression inputs are retained; additive tests cover cap boundaries, stability, balancing, and exhaustive external composition. Align the existing exact CI-command expectation with the new flag.
Validation: focused ordinary and race tests passed; unchanged pre-commit and pre-push hooks passed, including all 2005 ordinary names, all 2005 race names, vet/build/staticcheck, generated documentation, plugin build, benchmark smoke execution, and self-scan. The largest local race checks job took 323.140s after build-cache cleanup. These local results do not establish a measured CI speedup or guarantee wall time for one heavy test; the GitHub matrix must validate the runtime result.