Skip to content

Cache apt, submodule, and libghostty-vt in CI#35

Merged
zackslash merged 1 commit into
mainfrom
ci/caching-optimizations
Jun 18, 2026
Merged

Cache apt, submodule, and libghostty-vt in CI#35
zackslash merged 1 commit into
mainfrom
ci/caching-optimizations

Conversation

@zackslash

Copy link
Copy Markdown
Owner

Adds three caching layers to the build jobs in both test.yaml and release.yaml.

Apt packages (/var/cache/apt/archives) for test jobs. Avoids re-downloading Qt5/CMake packages on every run.

Ghostty submodule (.git/modules/ghostty) keyed on commit SHA. Skips the recursive clone when the cache is populated.

libghostty-vt static library (lib/$arch/) keyed on arch + submodule SHA + patch hash. On cache hit, skips submodule init, patch application, Zig install, and the entire Zig cross-compilation. This is the biggest win, saving 2-5 minutes per matrix job.

On a lib cache hit, the build job goes straight from checkout to RPM build. The submodule and patches are only fetched/applied when the library needs rebuilding.

- Cache apt packages for test jobs (/var/cache/apt/archives)
- Cache Ghostty submodule (.git/modules/ghostty) keyed on commit SHA
- Cache libghostty-vt static library (lib/$arch/) keyed on arch + submodule SHA + patches hash
- On lib cache hit, skip: submodule init, patch application, Zig install, and Zig build
- Add --no-fetch to submodule update when cache is populated
@zackslash zackslash merged commit 30d1520 into main Jun 18, 2026
3 checks passed
@zackslash zackslash deleted the ci/caching-optimizations branch June 18, 2026 21:26
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