Failure
kernal-api's Actions cache is over GitHub's 10 GB repository limit, driven by setup-soldr saving from pull-request runs. One PR (#354) offered about 23 GB of entries on refs/pull/354/merge:
| family |
ref |
entries |
size |
cook-base |
PR |
6 |
14.6 GB (~2.4 GB each) |
setup-soldr-buildcache |
PR |
3 |
3.8 GB |
setup-soldr-prepare |
PR |
4 |
2.3 GB |
setup-soldr-cargoregistry |
PR |
6 |
1.1 GB |
solo-toolchain |
PR |
5 |
0.9 GB |
cook-delta / setup-soldr-buildcache / solo-toolchain / setup-soldr-cargoregistry |
main |
6 |
~4.3 GB |
PR-ref entries are restorable only by that PR, so they evict main's reusable entries and leave later runs cold.
Mechanism
Every CI job runs zackees/setup-soldr (pinned c2a3b96, v0.9.77) with the default prebuild-deps: soldr-cook and caching on, so each job × target writes a cook base, build cache, prepare, cargo-registry and solo-toolchain entry on PRs as well as on main. setup-soldr has no main-action input to restore without saving: zackees/setup-soldr#527.
Proposal
- Primary: once setup-soldr#527 ships, bump all seven pins (
ci.yml x3, release.yml x2, auto-release.yml, macos-x64-tests.yml); with the default save-cache: auto, PR runs stop saving.
- Check whether jobs cooking the same graph can share one
cache-key-suffix per target and feature shape. Here one cook base is ~2.4 GB, so each duplicate costs heavily.
- Guard: extend
ci/test_native_proof_jobs.py (or a sibling test) to fail if any setup-soldr step can save on pull_request without an explicit exemption. RED once #527's input exists and a step omits it; GREEN when every step uses the policy.
Acceptance criteria
- After a PR run, no new
refs/pull/* cook/build/prepare/registry/toolchain entries; main keeps one set per target × shape; the total stays under 10 GB.
- PR CI restores warm from
main with no wall-time regression.
Related
Failure
kernal-api's Actions cache is over GitHub's 10 GB repository limit, driven by setup-soldr saving from pull-request runs. One PR (#354) offered about 23 GB of entries on
refs/pull/354/merge:cook-basesetup-soldr-buildcachesetup-soldr-preparesetup-soldr-cargoregistrysolo-toolchaincook-delta/setup-soldr-buildcache/solo-toolchain/setup-soldr-cargoregistryPR-ref entries are restorable only by that PR, so they evict
main's reusable entries and leave later runs cold.Mechanism
Every CI job runs
zackees/setup-soldr(pinnedc2a3b96, v0.9.77) with the defaultprebuild-deps: soldr-cookand caching on, so each job × target writes a cook base, build cache, prepare, cargo-registry and solo-toolchain entry on PRs as well as onmain. setup-soldr has no main-action input to restore without saving: zackees/setup-soldr#527.Proposal
ci.ymlx3,release.ymlx2,auto-release.yml,macos-x64-tests.yml); with the defaultsave-cache: auto, PR runs stop saving.cache-key-suffixper target and feature shape. Here one cook base is ~2.4 GB, so each duplicate costs heavily.ci/test_native_proof_jobs.py(or a sibling test) to fail if any setup-soldr step can save onpull_requestwithout an explicit exemption. RED once #527's input exists and a step omits it; GREEN when every step uses the policy.Acceptance criteria
refs/pull/*cook/build/prepare/registry/toolchain entries;mainkeeps one set per target × shape; the total stays under 10 GB.mainwith no wall-time regression.Related