-
-
Notifications
You must be signed in to change notification settings - Fork 187
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
CircleCI: add layer2 cache of newly added coreboot git forks to speedup builds from cache #1555
CircleCI: add layer2 cache of newly added coreboot git forks to speedup builds from cache #1555
Conversation
… up builds from cache Signed-off-by: Thierry Laurion <[email protected]>
Not sure about matrix bridge config for github. As of now, someone needs to put as draft and back to ready for review to have message from integration posted into channel to not spam (pull request creation is not publicised). But that means only reviewed and ready for review->draft-ready for review are posted. Testing. |
@tlaurion I thought last time we tried this, the problem was that we were going over a size limit, or saving the cache itself took too long, or something like that. (But maybe I recall incorrectly.) If this does save time and doesn't hit any limits, I'm all for it. Currently though, I can't see from the available pipelines how long it takes to save/restore or what the cache sizes are:
Could you get a pipeline through that saves the caches and then one that restores it? |
Changing cache name |
Starting build clean |
It only got coreboot-4.19 and coreboot-nitrokey:
The cache job does not appear to be downstream of any Librem boards using coreboot-purism. KGPE-D16 isn't built in CI at all currently. (I don't mind leaving the other keys in the hopes of fixing that, they don't really harm anything, but coreboot-purism was intended to be cached by the PR.) Layer 2 cache went from 3.3 GB to 5.0 GB. Layer 3 is already 7.8 GB so that itself is fine, but moving the cache job downstream of coreboot-purism will probably increase layer 3 by 1-2 GB as well. @tlaurion Do you want it to cache coreboot-purism or leave it as-is? Given that Layer 3 is already 7.8 GB, the increase in layer 2 is probably fine (not sure it's a good use of scarce time to trigger another job to see how long it takes to download). But if Layer 3 increases to ~10 GB we might want to see how that impacts build time. For reference, latest build: https://app.circleci.com/pipelines/github/tlaurion/heads/2174/workflows/03401bf0-276f-4f51-9a05-8880daab7d0c/jobs/38209 |
https://app.circleci.com/pipelines/github/tlaurion/heads/2174/workflows/03401bf0-276f-4f51-9a05-8880daab7d0c
Previous discussions, if my memory is good, thought of changing layers dependencies so that
That way, all purism boards should benefit of the cache save/restore (6 other purism librems boards reusing the cache vs 1 other nitrokey board reusing cache as currently) @JonathonHall-Purism I'll launch a rebuild with cache now, then change CACHE_VERSION to today's date and rebuild clean after having implemented hierarchy change above in circleci config). There must be something better to do with the caches but even if I digged in orhter github projects using CircleCI, there doesn't seem to be a lot of other projects on free tier doing massive caches like Heads do, and therefore nobody complained or seemed to have done something better. Wish I had a CircleCI specialist on-hand here). |
…lpful to build 6 boards (librems) not 1 (ns50) Signed-off-by: Thierry Laurion <[email protected]>
Master doesn't currently caches nor reuses coreboot's git forks build dir cache (layer2) but if no modules config changed (layer3).
So cache coreboot git dirs so that crossgcc toolchain can be built once and reuse when cache layer3 is invalidated by other modules having changed bu coreboot hasn't to speed up builds from cache of coreboot build dir which should be reused to only compile new modules having changed.
As of today, cache layer 3 (only scripts having changed) encompassed all build dirs and was reused.
Reminder