Repository navigation
Keep downloaded Ubuntu packages in the CI cache - #11667
Conversation
Add a small action that keeps the downloaded .deb files in the Actions cache, so slow Ubuntu mirror days don't stall builds. It is used for the aarch64 and mingw toolchains, the Zephyr port deps, and the 32-bit SDL2 packages for native_sim. The Zephyr deps list also includes the packages action-zephyr-setup installs, so its own apt-get has nothing to download. The cache key is a hash of the .deb file names, so a package update makes a new entry. Only pushes save, like the other dependency caches, and autoclean keeps out versions the mirror no longer has. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
dhalbert
left a comment
There was a problem hiding this comment.
Thanks - kind of crazy we have to do this, because the point of the mirror is to be a "local" cache for GitHub CI.
Was this invented out of whole cloth, or is there precedent of this in other repos?
The merge-base changed after approval.
The merge-base changed after approval.
|
Dan - 81% of Friday's (10/23/26) large-PR build time was waiting on slow Ubuntu downloads. The worst build took 130min to do 13min of work. There's precedent for caching Ubuntu images and apt downloads. It comes from the slow mirror problem. As long as a mirror responds another one will NOT be selected. Even if the mirror that responded is unusably slow.
|
|
Thanks. https://github.com/awalsh128/cache-apt-pkgs-action looks interesting but v2 is in process, so rolling our own seems better for now. |
|
This simple cache should be good for now. I expect regular main build time to be less than 15 min typically with the runners and the PRs we have add this week. |
What
Keep the compiler and Zephyr packages in the Actions cache, so CI skips most downloads.
Why
Since Oct 22 a slow Ubuntu mirror has stalled CI jobs for 20 to 56 minutes.
This includes the commit from #11665 (mingw), so review only the second commit.
action-zephyr-setupinstalls.debfile namesaction-zephyr-setupapt stepCache hits only start after this merges, since only pushes save.
Written with Claude Code. I checked the Zephyr action's apt list and the job ordering.
🤖 Generated with Claude Code