Repository navigation
ci: restore vcpkg binary caching so ICU isn't rebuilt every run - #44
Merged
Merged
Conversation
vcpkg removed its 'x-gha' binary cache backend, so github-binarycache: true cached nothing. ICU was compiled from source in the vcpkg step and again in each per-Python wheel build (~5x per job), costing ~37 min on Windows and ~21 min on macOS. Switch the action to its file cache (VCPKG_DEFAULT_BINARY_CACHE + actions/cache), which the wheel builds also hit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ddehilster
added a commit
that referenced
this pull request
Oct 15, 2026
#44 stopped the per-wheel ICU rebuilds, but the cache still never saved: vcpkg-action@v6 saves through pat-s/always-upload-cache@v3, which calls the retired cache service ("Failed to save: Our services aren't available"). - Upgrade to vcpkg-action@v8, which saves with actions/cache@v5. - Pin the vcpkg revision so a new vcpkg release doesn't change the key. - Add vcpkg-cache.yml to build the cache on main. Tag builds can only restore caches from their own tag or the default branch, and publish.yml never runs on main, so without this every release would miss. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Problem
Wheel builds take 50–70 minutes. Most of that is ICU being compiled from source, not the engine.
vcpkg removed its
x-ghabinary cache backend, sogithub-binarycache: truecaches nothing. The job log says so:As a result, ICU is built from source about 5 times per job: once in the vcpkg step, then again in each of the four per-Python wheel builds, because CMake's manifest mode runs
vcpkg installagain in every build dir.From the v2.2.66 run:
Fix
Set
github-binarycache: falseon both vcpkg steps. This switchesjohnwason/vcpkg-action@v6to its file cache: it exportsVCPKG_DEFAULT_BINARY_CACHEand savesvcpkg_cachewith actions/cache. cibuildwheel runs natively on Windows and macOS and inherits that env var, so the per-wheelvcpkg installshould restore the same ICU package from the cache instead of rebuilding it.Expected effect
🤖 Generated with Claude Code