Skip to content

cache: default false in all reusable workflows (supersedes #90)#93

Merged
ChrisRackauckas merged 2 commits into
SciML:masterfrom
ChrisRackauckas-Claude:cache-self-hosted-gate
Jun 14, 2026
Merged

cache: default false in all reusable workflows (supersedes #90)#93
ChrisRackauckas merged 2 commits into
SciML:masterfrom
ChrisRackauckas-Claude:cache-self-hosted-gate

Conversation

@ChrisRackauckas-Claude

@ChrisRackauckas-Claude ChrisRackauckas-Claude commented Jun 14, 2026

Copy link
Copy Markdown

cache: default false in all reusable workflows

Chris's call: caching does nothing useful on GitHub-hosted runners and is actively harmful on the self-hosted demeter runner, so the cache input now defaults to false everywhere it exists, fleet-wide.

Why caching is not worth defaulting on

julia-actions/cache restores a coarse, OS-only-keyed depot (~355 MB) that rarely matches the actual Manifest.toml. Because the key doesn't track the manifest, the restored depot is almost always stale, so Julia re-runs precompilation anyway — the cache buys little to nothing on the compile side, while still adding the restore/save steps that can race or fail (concurrent jobs, partial tars).

  • GitHub-hosted / ephemeral runners: net-neutral. The depot starts empty, the coarse cache rarely hits the manifest, precompile re-runs, and the save/restore overhead roughly cancels any savings.
  • Self-hosted demeter: catastrophic. demeter already has a persistent, always-warm depot (20-29 GB), so the cache action's restore always MISSES and the post-job save tar-uploads the whole 20-29 GB depot at ~7 MB/s — +30-60 min per job, for zero benefit.

So there is no runner type where defaulting caching on is a win. Default it false.

What changed

cache input default: truedefault: false (and added where missing), across every reusable that can cache:

  • tests.yml — default flipped to false. The existing self-hosted gate on the cache step is kept as defense in depth: if: "${{ inputs.cache && inputs.runner == '' && !inputs.self-hosted }}", so even an explicit cache: true can never trigger the demeter footgun.
  • grouped-tests.yml — default flipped to false (forwards cache: ${{ inputs.cache }} to tests.yml).
  • sublibrary-project-tests.ymladded a cache boolean input (default false) and forward it into the tests.yml@v1 call. This is the toggle PR feat: allow forwarding cache in sublibrary-project-tests #90 added, but defaulting false instead of true.
  • documentation.yml — default flipped to false.
  • downstream.yml — default flipped to false.

The input is kept everywhere so any individual repo can still opt back in with cache: true if it ever proves worthwhile for that repo (and even then the self-hosted gate protects demeter).

actionlint clean on all five edited files.

Supersedes #90

This supersedes PR #90, which added the sublibrary cache toggle but defaulted it to true. This PR adds the same toggle defaulting false (the correct default per the analysis above) and applies the same default-false treatment fleet-wide. Recommend closing #90.


v1 must be retagged after merge. Ignore until reviewed by @ChrisRackauckas.

ChrisRackauckas and others added 2 commits June 14, 2026 04:45
…eter save overhead); add cache input to grouped-tests

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…tral on hosted, catastrophic on self-hosted demeter; supersedes SciML#90)

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ChrisRackauckas-Claude ChrisRackauckas-Claude changed the title cache: skip on self-hosted runners (persistent depot) + add cache toggle to grouped-tests cache: default false in all reusable workflows (supersedes #90) Jun 14, 2026
@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review June 14, 2026 09:35
@ChrisRackauckas ChrisRackauckas merged commit a0ba0c7 into SciML:master Jun 14, 2026
2 checks passed
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.

2 participants