From 7f4ee9a329f1621960c6c3dcc1701966d8bad29a Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Sun, 14 Jun 2026 04:45:18 -0400 Subject: [PATCH 1/2] cache: gate julia-actions/cache to hosted runners (avoid 30-60min demeter save overhead); add cache input to grouped-tests Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/grouped-tests.yml | 6 ++++++ .github/workflows/tests.yml | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/grouped-tests.yml b/.github/workflows/grouped-tests.yml index cf61a6e..1a72540 100644 --- a/.github/workflows/grouped-tests.yml +++ b/.github/workflows/grouped-tests.yml @@ -69,6 +69,11 @@ on: default: "v1" required: false type: string + cache: + description: "Use the julia-actions/cache action for caching" + default: true + required: false + type: boolean jobs: detect: @@ -116,4 +121,5 @@ jobs: coverage-directories: "${{ inputs.coverage-directories }}" apt-packages: "${{ inputs.apt-packages }}" container: "${{ inputs.container }}" + cache: ${{ inputs.cache }} secrets: "inherit" diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 00ce11f..5c9d17c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -124,7 +124,11 @@ jobs: arch: "${{ inputs.julia-arch || runner.arch }}" - uses: julia-actions/cache@v3 - if: "${{ inputs.cache }}" + # Skip caching on self-hosted runners: demeter has a persistent, already + # warm depot (20-29GB), so the cache always MISSES and the post-job save + # tar-uploads 20-29GB at ~7MB/s (+30-62 min/job). Only useful on + # GitHub-hosted/ephemeral runners (empty `runner` and not `self-hosted`). + if: "${{ inputs.cache && inputs.runner == '' && !inputs.self-hosted }}" with: token: "${{ secrets.GITHUB_TOKEN }}" From 8609cff7af19e8ca35ad6a45ed29c98a17cf928e Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Sun, 14 Jun 2026 05:12:58 -0400 Subject: [PATCH 2/2] cache: default to false in all reusable workflows (caching is net-neutral on hosted, catastrophic on self-hosted demeter; supersedes #90) Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/documentation.yml | 2 +- .github/workflows/downstream.yml | 2 +- .github/workflows/grouped-tests.yml | 2 +- .github/workflows/sublibrary-project-tests.yml | 6 ++++++ .github/workflows/tests.yml | 2 +- 5 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 3eadbaa..e2d008c 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -38,7 +38,7 @@ on: type: string cache: description: "Use the julia-actions/cache action for caching" - default: true + default: false required: false type: boolean coverage: diff --git a/.github/workflows/downstream.yml b/.github/workflows/downstream.yml index 8a6144f..0cabd9a 100644 --- a/.github/workflows/downstream.yml +++ b/.github/workflows/downstream.yml @@ -38,7 +38,7 @@ on: type: string cache: description: "Use the julia-actions/cache action for caching" - default: true + default: false required: false type: boolean buildpkg: diff --git a/.github/workflows/grouped-tests.yml b/.github/workflows/grouped-tests.yml index 1a72540..f1fd8e6 100644 --- a/.github/workflows/grouped-tests.yml +++ b/.github/workflows/grouped-tests.yml @@ -71,7 +71,7 @@ on: type: string cache: description: "Use the julia-actions/cache action for caching" - default: true + default: false required: false type: boolean diff --git a/.github/workflows/sublibrary-project-tests.yml b/.github/workflows/sublibrary-project-tests.yml index cfaad20..6958b14 100644 --- a/.github/workflows/sublibrary-project-tests.yml +++ b/.github/workflows/sublibrary-project-tests.yml @@ -61,6 +61,11 @@ on: default: "v1" required: false type: string + cache: + description: "Use the julia-actions/cache action for caching" + default: false + required: false + type: boolean jobs: detect: @@ -126,4 +131,5 @@ jobs: allow-reresolve: ${{ inputs.allow-reresolve }} coverage: ${{ inputs.coverage }} coverage-directories: "${{ matrix.project }}/src,${{ matrix.project }}/ext" + cache: ${{ inputs.cache }} secrets: "inherit" diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 5c9d17c..d0f040f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -39,7 +39,7 @@ on: type: string cache: description: "Use the julia-actions/cache action for caching" - default: true + default: false required: false type: boolean buildpkg: