Repository navigation
ci: warm master's build from the staging cache artifact - #45169
marcelolynch wants to merge 6 commits into
Conversation
Welcome new contributor!Thank you for contributing to Mathlib! If you haven't done so already, please review our contribution guidelines, as well as the style guide and naming conventions. In particular, we kindly remind contributors that we have guidelines regarding the use of AI when making pull requests. We use a review queue to manage reviews. If your PR does not appear there, it is probably because it is not successfully building (i.e., it doesn't have a green checkmark), has the If you haven't already done so, please come to Zulip and join the Lean community. |
PR summary 028732138eImport changes for modified filesNo significant changes to the import graph Import changes for all files
|
The master build warms its local cache from the
cache-snapshotartifact of the previous master commit. After a large bors batch, this snapshot does not hold the new files of the batch, so the Build and Test-and-lint jobs download thousands of files from the remote cache. In the 14 days to 2026-10-21, three of the five failed master runs failed on one broken transfer in such a download (3,860 to 8,629 files).This PR adds a second warm step to the
get-cacheaction. When the new inputwarm_from_stagingistrue, the action finds the bors staging run at the same commit and downloads itscache-stagingartifact into a temporary directory. After a complete download, it moves the.ltarfiles that the local cache lacks into it, so a failed download leaves no partial file there and no existing file is replaced. The staging run is the trusted run that uploaded these files to the master container.build_template.ymlsets the input frompublish_cache, so only master pushes use it. When no staging run or artifact exists, the action continues with the remote fetch.The step selects the staging run by commit, not by conclusion: bors fast-forwards master when the required jobs pass, before the whole staging run completes. It accepts only a run that
mathlib-bors[bot]started and that nobody re-ran. The step logs how many files it moved and how many the local cache already held.The artifact holds only the files that the staging run built, so the master build still fetches the files that the staging run downloaded.
#45096 retries the broken transfers. This PR removes most of the transfers on master.
A fork PR runs master's workflows, so the CI of this PR does not run the changed workflow.
The resolve step finds run 39614558840 for commit a2f40e9 and no artifact for a documentation-only commit; actionlint and shellcheck pass.
🤖