ci: warm release build caches from main#1259
Conversation
Tag-triggered release runs can only restore Actions caches created on the default branch, so the rust-cache step in release.yml never hit and every release compiled all dependencies from scratch (~40-60 min per target). Add a cache-warm workflow that runs the same release-mode build matrix on main (on Cargo.lock changes, weekly, or manually) under a shared rust-cache key, and switch release.yml to restore that key without saving — caches saved on tag refs are unreachable by future runs and only consumed quota. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
This change is part of the following stack: Change managed by git-spice. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #1259 +/- ##
=======================================
Coverage 46.13% 46.13%
=======================================
Files 390 390
Lines 27293 27293
Branches 2501 2501
=======================================
+ Hits 12591 12592 +1
+ Misses 14680 14679 -1
Partials 22 22
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Code Review: ci: warm release build caches from main
Stack positionTargets CorrectnessThe GitHub Actions cache scoping is correctly understood and implemented throughout:
Non-blocking suggestionThe matrix in # Must mirror the build matrix in release.yml.There is no enforcement. A new release target added to # If you add a target here, add the same entry to cache-warm.yml.Not a blocker — approving. |
Tag-triggered release runs can only restore Actions caches created on the
default branch, so the rust-cache step in release.yml never hit and every
release compiled all dependencies from scratch (~40-60 min per target).
Add a cache-warm workflow that runs the same release-mode build matrix on
main (on Cargo.lock changes, weekly, or manually) under a shared rust-cache
key, and switch release.yml to restore that key without saving — caches
saved on tag refs are unreachable by future runs and only consumed quota.
Co-Authored-By: Claude Fable 5 noreply@anthropic.com