-
Notifications
You must be signed in to change notification settings - Fork 90
CI: Improve Qt caching #103
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
14860f0 to
dfcf835
Compare
|
|
PatTheMav
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks right syntactically.
|
|
|
Looks like |
|
What I'd love to achieve is only rebuilding the parts of Qt that the changed patches affect, but I'm not sure if that's achievable. At least this improves the cache-hit mechanism without us having to remember to forcibly and manually invalidate the cache. |
|
This should be working as designed now. It should restore from This doesn't get us to the quicker partial rebuild that I really want. For that, we'd probably have to cache the intermediate build directories, and I'm not sure what the tradeoffs would be (time spent restoring/saving the bigger cache and more cache usage versus time saved doing full vs. partial rebuilds if a patch is added/removed/changed). However, this does give us an idea of how to better ensure that patch file changes force a rebuild via cache invalidation. |
PatTheMav
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah it's still a bit here and there, but the change is simple enough that I think it's worth the improvements it brings.
Use the hash of the Qt patches for the cache key for the Qt build jobs. Use restore-keys to do a fuzzy-match to restore the cache if the exact cache key is not found. This should allow us to restore the Qt cache and do a rebuild if the patches used for Qt change. This means we don't have to remember to change the QT_REVISION variable if we add new patches or change the existing ones.
Description
Use the hash of the Qt patches for the cache key for the Qt build jobs. Use restore-keys to do a fuzzy-match to restore the cache if the exact cache key is not found. This should allow us to restore the Qt cache and do a rebuild if the patches used for Qt change. This means we don't have to remember to change the QT_REVISION variable if we add new patches or change the existing ones.
Motivation and Context
Hopefully, we can avoid full rebuilds of Qt on CI when we've just changed patch files. We're still unsure how well this will work, so it might be best to merge this and see how the subsequent Qt patch PRs (#101 and #102) behave.
Edit:
This will only force a rebuild if the Qt patches have changed. It won't let us do partial rebuilds by itself. For that, we would need to also cache the intermediate build directory.
How Has This Been Tested?
CI is the test.
Types of changes
Checklist: