Skip to content

Bump julia-actions/cache from 2 to 3 - #50

Draft
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/github_actions/julia-actions/cache-3
Draft

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/github_actions/julia-actions/cache-3

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Mar 9, 2026 •

Copy link
Copy Markdown
Contributor

Bumps julia-actions/cache from 2 to 3.

Release notes

Sourced from julia-actions/cache's releases.

v3.0.0 - Cache on failure (with override)

What's Changed

Breaking Changes

  • Caching will now happen when the job fails, with an override to restore the previous behavior via save-always: false

Changes

Maintenance

New Contributors

Full Changelog: julia-actions/cache@v2.1.0...v3.0.0

v2.1.0 - New outputs cache-paths and cache-key

What's Changed

New features

Maintenance

... (truncated)

Commits
  • e33b4bf Javascript version of existing action which also saves if job fails (#198)
  • d256f7f Bump pyTooling/Actions from 7.4.2 to 7.5.0 (#197)
  • 227b376 Bump pyTooling/Actions from 7.2.0 to 7.4.2 (#196)
  • 9a3120a Bump actions/cache from 5.0.1 to 5.0.3 (#195)
  • 43522e3 Bump actions/checkout from 6.0.1 to 6.0.2 (#194)
  • e847269 Bump pyTooling/Actions from 6.7.0 to 7.2.0 (#193)
  • 2061bcf Bump actions/cache from 4.3.0 to 5.0.1 (#192)
  • c4f3718 Bump actions/checkout from 6.0.0 to 6.0.1 (#191)
  • 38850d7 Update GitHub Actions checkout action version (#187)
  • 429bb24 Bump pyTooling/Actions from 6.6.0 to 6.7.0 (#188)
  • Additional commits viewable in compare view

Dependabot compatibility score

You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

Bumps [julia-actions/cache](https://github.com/julia-actions/cache) from 2 to 3.
- [Release notes](https://github.com/julia-actions/cache/releases)
- [Commits](julia-actions/cache@v2...v3)

---
updated-dependencies:
- dependency-name: julia-actions/cache
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Mar 9, 2026
@ocots

ocots commented Oct 20, 2026

Copy link
Copy Markdown
Member

Not to be merged as is; set back to draft. Notes on what was tested (2026-10-20) and what a decision would need.

What this changes

One line of ci.yml: the cache of the GitHub-hosted jobs (ubuntu, macOS, Windows × Julia 1.10, 1.13) of every package. v3 is a JavaScript rewrite (not the former composite action) and a breaking change: the cache is saved even when the job fails (save-always, false restores the old behaviour), plus delete-old-caches: true and a cache key that contains run_id and run_attempt.

ci.yml relies on one behaviour of v2 (see the comment before the step): the cache restores ~/.julia/registries, and Add ct-registry then finds it and is fast. If it is not restored, General and ct-registry are cloned at every run.

What was tested

A throwaway branch of CTActions with only this line changed, and a draft PR on CTBase.jl (control-toolbox/CTBase.jl#629, closed) whose CI.yml called ci.yml from that branch; label run ci github-runner; two runs of the same PR (the second one a re-run, so that it could restore what the first had saved). Compared with the last v2 run on main (run 39331387663).

  • First run: all jobs green, cold cache, as expected.
  • Second run (re-run), the two jobs that had finished when it was stopped: No cache found (restore key julia-cache;workflow=CI;job=test;os=…;version=…;runs_on=…;) on ubuntu 1.10 and Windows 1.13.
    • Add ct-registry: 36 s (ubuntu 1.10) and 157 s (Windows 1.13), with both registries cloned again, against 3 to 10 s with a restored v2 cache.
    • Windows 1.13 tests: 1338 s, against 584 s in the v2 reference.
  • The caches that exist after the first run are ~1 GB each (about 1.0 to 1.35 GB on Linux and Windows, ~0.95 GB on macOS), so a full matrix is ~6 GB per run. The repository limit is 10 GB, shared with every other cache.
  • The list of caches after the first run lacks exactly two of the six entries (Linux 1.10, Windows 1.13), the ones that then found nothing to restore. One hypothesis, not verified: delete-old-caches removes caches of the other matrix entries.

Limits of that test

  • Only two jobs of six had finished; a PR can only read its own caches and those of main, so the usual case (a PR restoring a cache saved on main) was not exercised.
  • The hypothesis above is not checked.

What to test before deciding

Same setup (throwaway CTActions branch + draft PR on a small package, two runs, then main), in this order:

  1. delete-old-caches: false explicitly: does the second run restore on all six entries? This is the cheapest test of the hypothesis.
  2. A push to main of the test package with v3 (so that main holds v3 caches), then a PR: does it restore from main? That is the situation that matters.
  3. On restored runs, compare with v2: time of the Cache step, of Add ct-registry (should stay at a few seconds), of the tests, on the six entries.
  4. The cache budget: the sizes and the number of caches of the repository after several runs, with the run-specific key, against the 10 GB limit (v2 keeps one cache per entry).
  5. save-always (default true in v3): that a failing job does not leave a broken depot as the next run's cache; save-always: false if it does.

Without a measured gain, staying on v2 is the safe choice: it works, and Dependabot will propose v3 again on the next release.

The throwaway branches and the test caches (refs/pull/629 and 630 of CTBase.jl) are deleted.

@ocots
ocots marked this pull request as draft October 20, 2026 18:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant