Repository navigation
[CI] ci: stop cache-test edits from starting five warm-up runners - #26399
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (2)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe push and pull-request path filters now match the exact compiler cache script instead of a wildcard. The pull-request filter no longer includes the cache-warmup workflow test. Tests verify the expected included and excluded paths for both filters. Priority: ⬇️ Low Merge Risk: ⚪ Minimal · up to The cache warmer retains its required implementation and input triggers while skipping test-only changes; no actionable merge-blocking risk was identified, subject to normal CI checks. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
ELI5
Changing a cache-related test currently starts five extra runners even when no cache input changed. Those runners mostly restore existing caches and compete with required CI. This stops that work for test-only edits while keeping normal tests and useful shared warming.
What Changed
Use the exact
headless-detector-compiler-cache.mjsimplementation path instead of a wildcard that also matches its test. Remove the workflow test itself from the warmer's PR triggers. Actual workflow, action and Docker input changes still trigger validation. Main cache-input pushes, the six-hour schedule, manual runs and all job bodies remain unchanged.Why
PR #26374 changed 40 files; the only warmer-trigger match was
headless-detector-compiler-cache.test.mjs, which is absent from the compiler cache key. All five jobs hit existing primary caches. Four saved nothing; Linux saved only PR-private TypeScript state after required preflight had completed. PR writes cannot populate another PR's shared caches (GitHub cache scope).Narrowing three trigger lines preserves action validation and main-produced caches without adding a routing job or changing cache consumers, runtimes, test isolation or coverage. Removing all warming would also remove useful default-branch producers.
Before / after evidence
The after column follows from testing the complete 40-file diff against every revised PR trigger: zero matches. It is a source-based scheduling result, not a measured end-to-end CI speedup. No new runtime was launched to benchmark an absent workflow.
Raw before measurements, with every job retained:
This fix PR’s workflow validation also ran all five unchanged jobs because it edits the warmer workflow: Linux x64 85 s, Linux ARM 29 s, Windows x64 59 s, Windows ARM 230 s and Docker fixtures 65 s, totaling 468 runner-seconds; all passed. These retained timings are not a test-only after event and do not establish a runtime gain or regression. The improvement is avoiding their enrollment when only the excluded tests change.
The latest workflow elapsed 6m49s including queues, but it runs independently of required
verify. Its Linux job started at 02:02:34 UTC, after required preflight completed at 02:02:25; its TypeScript cache was saved at 02:03:21. Required unit runners queued for 97–395 seconds. This establishes avoidable runner consumption, not a causal queue reduction, 51 seconds of serial PR delay, or the broader whole-suite 2× goal.Linked Issue
Internal CI audit requested for #26374; no separate issue.
Visual Proof
N/A — CI path filters only; no product UI or interaction changes.
Testing
Review
Three independent read-only agents checked cache scope, changed-input ownership and the required CI dependency graph. The review bot covered the exact shipping commit and reported no actionable comments; zero unresolved threads. Current main includes #26374: the two owned files and eleven relevant source guards are unchanged; its five-line compiler-test fixture addition is reviewed and preserved, without claiming that newer whole tree ran in our CI. No cache action or product runtime changes; macOS/Linux/Windows, SSH and folder-workspace behavior are unaffected.
Agent skill upstream boundary
Checklist