Repository navigation
chore(ci): run the suite in more parallel shards - #2059
Merged
Merged
Conversation
Coverage runs in 6 shards instead of 4 and PHP 8.4 in 3 instead of one process. The plain PHP 8.3 run goes: the coverage shards already run the same suite on PHP 8.3. `PHPUnit (PHP 8.3)` and `PHPUnit (PHP 8.4)` become gate jobs that report their shards' result, so the required check names stay and branch protection needs no change. shard-tests.php now takes both suites phpunit.xml.dist declares, so tests/Integration runs in the shards too. Closes #2058 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018srx5hc431EYmG4MHUr2KA
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.
Closes #2058
Problem
A CI run takes about 20 minutes. Coverage shards 2–4 take 14 to 20 minutes each. The two plain PHPUnit jobs each run the whole suite in one process, in 10 to 17 minutes.
PHPUnit (PHP 8.3)repeats what the coverage shards already do: they run the same suite on PHP 8.3. Measurements are in #2058.Change
PHPUnit 8.4 shard N) instead of one process.PHPUnit (PHP 8.3)andPHPUnit (PHP 8.4)are now gate jobs. They report the result of their shards (the coverage shards for 8.3) and run nothing themselves, likeCoverage (PHP 8.3)already did. Branch protection needs no change.shard-tests.phpnow takes both suitesphpunit.xml.distdeclares, sotests/Integrationruns in the shards. The coverage shards used to skip it.Left alone: the LPT weighting. Locally the 4 shards were balanced (14–16 min with 4 in parallel), and the spread seen on CI is runner variance.
Tests
needsresolves.Risk
CI only. The new partition places files in different neighbours, so a latent order dependence could surface. The local run of every shard is there to catch it before CI does.
Checklist
develop; no version bumpCHANGELOG.md— bullet at the end of ChangedGenerated by Claude Code