Skip to content

ci(cache): setup-soldr PR saves blow the 10 GB cache (one PR offered ~23 GB, 14.6 GB of cook bases) — adopt setup-soldr#527 and guard it #355

Description

@zackees

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions