Parallelize critical CI test workloads - #16116
Conversation
Introduce a root-only build-logic plugin that partitions Test tasks with stable SHA-256 assignments while preserving existing execution predicates. Cover lifecycle validation, late task registration, aggregate test facades, and disjoint shard manifests with TestKit. Assisted-by: opencode:gpt-5.6-sol
Split Groovy Joint validation across three deterministic test shards and the Windows JDK 25 core build across two shards while retaining one complete build in shard zero. Restore dependency-only caches in every shard and allow only full-build jobs to save them. Assisted-by: opencode:gpt-5.6-sol
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## 8.0.x #16116 +/- ##
==================================================
+ Coverage 52.3431% 52.3539% +0.0108%
- Complexity 18296 18303 +7
==================================================
Files 2036 2036
Lines 96347 96373 +26
Branches 16829 16836 +7
==================================================
+ Hits 50431 50455 +24
- Misses 38492 38493 +1
- Partials 7424 7425 +1 🚀 New features to boost your workflow:
|
First-run measurementThe acceptance gate passes on the unchanged PR SHA.
Shard timings:
The initial Main CI attempt had one unrelated failure in unsharded The next aggregate limiter is now the unchanged |
Expand the Windows core build and rerun-tasks validation to three deterministic test shards. Keep complete non-test validation and cache writes on shard zero while every sibling retains the original test and rerun flags. Assisted-by: opencode:gpt-5.6-sol
✅ All tests passed ✅🏷️ Commit: cd4490a Learn more about TestLens at testlens.app. |
Iteration 2 hosted measurementAll checks passed on
Iteration 2 alone reduced aggregate completion by another 24m23s / 28.2%. The two former critical jobs moved well below the new floor:
The critical path is now unchanged functional validation: Coverage proof remains exhaustive and disjoint:
No validation, task, test, platform leg, or rerun flag was removed. Run: https://github.com/apache/grails-core/actions/runs/31267347078 |
Summary
Testtasks while preserving existingonlyIfpredicatesNo workflow, OS/JDK matrix leg, validation task, or test task is removed.
Verification
build-logic: full test suite passesvalidateActions: all 23 workflows passPerformance Gate
This is a draft measurement PR. The current aggregate pull-request wall-clock baseline is approximately 117 minutes, with Groovy Joint and Windows main CI as the measured limiters. Keep this change only if aggregate completion improves by at least 15% and 10 minutes without reducing coverage.