Repository navigation
ci: Cache Windows LLVM download, and retry curl downloads - #2187
Merged
Merged
Conversation
Our Windows CI often fails suriously in ways that are unrelated to whatever changes are in a PR, and then succeeds upon retry (sometimes after multiple retries). Often it's at the step where it's downloading the pre-built Windows LLVM that we stashed on a Google drive (we could not find a pre-built one with exactly the options we wanted, and we can't build LLM from scratch in a reasonable time on the CI machines). I finally (with some help from Claude) tracked down the source of these failures: we're hitting Google Drive download limits! This patch uses GHA cache action to reuse those downloads, generally only retrieving from the Google drive the first time a branch or PR goes through CI, which throttles usage enough to keep us under quota. The specifics: * Cache the unpacked LLVM (~/llvm/llvm-build) with actions/cache, keyed on LLVM_GOOGLE_DRIVE_ID. Both Windows jobs share the entry. The save step runs right after Dependencies, so a later build failure doesn't lose it. gh-win-installdeps.bash skips the download when the cache restored the directory. * When we do download, check the result with `unzip -t`. If it is not a zip, fail with a clear message and print the start of the file. * Add `--fail --retry 5 --retry-delay 10` to the curl downloads in gh-win-installdeps.bash, build_llvm.bash, and build_cmake.bash, to ride out transient network failures. * Fix a missing `;` before `then` in gh-win-installdeps.bash. Assisted-by: Claude Code / Claude Opus 5.5 Signed-off-by: Larry Gritz <lg@larrygritz.com>
fpsunflower
approved these changes
Oct 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Our Windows CI often fails spuriously in ways that are unrelated to whatever changes are in a PR, and then succeeds upon retry (sometimes after multiple retries). Often it's at the step where it's downloading the pre-built Windows LLVM that we stashed on a Google drive (we could not find a pre-built one with exactly the options we wanted, and we can't build LLVM from scratch in a reasonable time on the CI machines).
I finally (with some help from Claude) tracked down the source of these failures: we're hitting Google Drive download limits!
This patch uses GHA cache action to reuse those downloads, generally only retrieving from the Google drive the first time a branch or PR goes through CI, which throttles usage enough to keep us under quota.
The specifics:
unzip -t. If it is not a zip, fail with a clear message and print the start of the file.--fail --retry 5 --retry-delay 10to the curl downloads in gh-win-installdeps.bash, build_llvm.bash, and build_cmake.bash, to ride out transient network failures.;beforethenin gh-win-installdeps.bash.Assisted-by: Claude Code / Claude Opus 5.5