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.3497% +0.0066%
- Complexity 18296 18302 +6
==================================================
Files 2036 2036
Lines 96347 96373 +26
Branches 16829 16836 +7
==================================================
+ Hits 50431 50451 +20
- Misses 38492 38498 +6
Partials 7424 7424 🚀 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
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 |
Split the longest functional and Hibernate 7 validation legs across two deterministic test shards while preserving every Java and indy configuration. Keep full non-test verification on the original matrix entries. Assisted-by: opencode:gpt-5.6-sol
✅ All tests passed ✅🏷️ Commit: 7ebf2fb Learn more about TestLens at testlens.app. |
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.