sccache's cache is on GitHub's built-in actions/cache, cappe…

Table of Contents

This page is a capture in the next bucket of the product backlog — a pre-sprint idea, not yet pulled into a sprint as a story.

What

Move sccache's cache off GitHub's built-in actions/cache onto an external backend sccache natively supports (S3, GCS, Azure Blob, or a self-hosted Redis/webdav endpoint). The cache would then be bounded by whatever storage is provisioned rather than GitHub's fixed 10 GB per-repository quota, would no longer compete with unrelated OS/compiler variants for that shared quota, and would no longer be subject to GitHub's 7-day-unused eviction policy.

Why

GitHub's actions/cache is capped at a fixed, non-purchasable 10 GB per repository, shared across every OS/compiler/buildtype variant (linux-gcc/clang, windows-clang, macos-clang × debug/release) plus the vcpkg and Qt install caches. Confirmed via a live experiment in sprint 22 (story canary_ctest_ignores_cancellation): a PR with essentially zero source diff still got a 0.00% sccache hit rate, because the Linux-gcc-debug cache that canary-linux.yml depends on (and which gates every PR) had been evicted entirely by GitHub's LRU policy to make room for other platforms' caches, touched more recently by continuous-*.yml runs elsewhere in the repo.

The immediate mitigation landed in PR #1418 (stop persisting sccache for windows/macos continuous builds, so Linux gets the shared quota to itself) only reduces the contention — it doesn't remove it, and doesn't scale as more variants or heavier builds are added. An external backend removes the constraint at the root instead of continuing to ration a fixed 10 GB across a growing set of build variants.

References

See also

Emacs 29.3 (Org mode 9.6.15)