Repository navigation
ci: Cache the dependencies that Windows CI builds from source - #2188
Merged
Merged
Conversation
This brings the Windows CI jobs down from around 30m to around 10m (for the 2nd and subsequent build on the same branch or PR). TL;DR: On Linux and Mac, our CI uses GHA cache action, in conjunction with ccache, to save and restore the ccache area, thus making recompiles (including run to run on the same branch and with the same flags) much less expensive, both for OSL itself and also for any dependencies that we rebuild from scratch. CMake's Visual Studio generator ignores CMAKE_CXX_COMPILER_LAUNCHER, so ccache isn't used for our Windows CI. We could switch to Ninja and use ccache, but then there is a testing gap where we aren't building in the way that most Windows users will. So we don't cache, and thus have long build times. This PR caches the installed results of our dependency builds on Windows, saving about 2/3 of the total time. The dependencies we build in Windows CI (and now cache for most runs) are zlib, libpng, pybind11, OpenEXR, pugixml, OpenColorIO, and OpenImageIO. Assisted-by: Claude Code / Claude Opus 5.5 Signed-off-by: Larry Gritz <lg@larrygritz.com>
Collaborator
Author
|
No bites, CI only change -> merging |
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.
This brings the Windows CI jobs down from around 30m to around 10m (for the 2nd and subsequent build on the same branch or PR).
TL;DR:
On Linux and Mac, our CI uses GHA cache action in conjunction with ccache to save and restore the ccache area, thus making recompiles (including run to run on the same branch and with the same flags) much less expensive, both for OSL itself and also for any dependencies that we rebuild from scratch.
CMake's Visual Studio generator ignores CMAKE_CXX_COMPILER_LAUNCHER, so ccache isn't used for our Windows CI. We could switch to Ninja and use ccache, but then there would be a testing gap where we wouldn't be building in the way that most Windows users will. So we don't cache, and thus have long build times.
This PR caches the installed results of our dependency builds on Windows, saving about 2/3 of the total time. The dependencies we build in Windows CI (and now cache for most runs) are zlib, libpng, pybind11, OpenEXR, pugixml, OpenColorIO, and OpenImageIO.
Assisted-by: Claude Code / Claude Opus 5.5