Skip to content

Keep downloaded Ubuntu packages in the CI cache - #11667

Open
mikeysklar wants to merge 2 commits into
adafruit:mainfrom
mikeysklar:ci-cache-apt-packages
Open

mikeysklar wants to merge 2 commits into
adafruit:mainfrom
mikeysklar:ci-cache-apt-packages

Conversation

@mikeysklar

@mikeysklar mikeysklar commented Oct 23, 2026 •

Copy link
Copy Markdown
Collaborator

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.

Packages Size Used by
SDL2 (32-bit) 138 MB native_sim builds and tests
mingw 65.2 MB mpy-cross for Windows
Zephyr deps, plus what action-zephyr-setup installs 32.7 MB every Zephyr job
aarch64 45.2 MB mpy-cross for aarch64
Cache
Saved Only on pushes to main
Key Hash of the .deb file names
Total size about 280 MB, of the 10 GB limit
action-zephyr-setup apt step Nothing left to download, checked in this PR's CI

Cache hits only start after this merges, since only pushes save.

Related PR Change
#11664 Board builds no longer wait for mpy-cross
#11665 mpy-cross downloads less
This PR Cache the downloads
#11666 Zephyr tests in more jobs

Written with Claude Code. I checked the Zephyr action's apt list and the job ordering.

🤖 Generated with Claude Code

mikeysklar and others added 2 commits October 23, 2026 12:54
Makefile.static-mingw only uses x86_64-w64-mingw32-gcc. The mingw-w64
metapackage pulls in 25 packages (277 MB): both i686 and x86-64, both
thread models, and g++. This package is about 60 MB and registers the
same win32 compiler the job already ended up using.

On days the Azure Ubuntu mirror is slow, the old install took 35-100 min.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant