Skip to content

Commit 544069c

Browse files
committed
gha - adapt renv cache saving to new actions/cache@v4
`save-always` is deprecated, and now it needs to be a two step process: restore and save based on adaptation at r-lib/actions/setup-renv in r-lib/actions@108c7a6 gha - new cache does not allow overwrite and it does not deal with skipping existing cache. So it is a bit different that `save-always`. Cache will only be updated when renv.lock changes
1 parent a0ff13f commit 544069c

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

.github/workflows/test-smokes.yml

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -105,14 +105,16 @@ jobs:
105105
cat("r-version=", R.Version()$version.string, "\n", file = Sys.getenv("GITHUB_OUTPUT"), sep = "", append = TRUE)
106106
shell: Rscript {0}
107107

108-
- name: Cache R packages
109-
uses: actions/cache@v4
108+
- name: Restore Renv package cache
109+
id: cache-renv-packages-restore
110+
uses: actions/cache/restore@v4
110111
with:
111-
path: ${{ env.RENV_PATHS_ROOT }}
112-
key: ${{ steps.get-version.outputs.os-version }}-${{ steps.get-version.outputs.r-version }}-renv-2-${{ hashFiles('tests/renv.lock') }}
112+
path: |
113+
${{ env.RENV_PATHS_ROOT }}
114+
renv/library
115+
key: ${{ steps.get-version.outputs.os-version }}-${{ steps.get-version.outputs.r-version }}-renv-3-${{ hashFiles('tests/renv.lock') }}
113116
restore-keys: |
114-
${{ steps.get-version.outputs.os-version }}-${{ steps.get-version.outputs.r-version }}-renv-2-
115-
save-always: ${{ inputs.extra-r-packages == '' }} # don't save cache if we have extra R packages
117+
${{ steps.get-version.outputs.os-version }}-${{ steps.get-version.outputs.r-version }}-renv-3-
116118
117119
- name: Install missing system deps
118120
if: runner.os == 'Linux'
@@ -297,6 +299,16 @@ jobs:
297299
key: ${{ steps.cache-typst.outputs.cache-primary-key }}
298300
path: ${{ steps.cache-typst.outputs.cache-path }}
299301

302+
- name: Save Renv package cache
303+
# don't save cache if we have extra R packages
304+
if: ${{ always() && steps.cache-renv-packages-restore.outputs.cache-hit != 'true' && inputs.extra-r-packages == '' }}
305+
uses: actions/cache/save@v4
306+
with:
307+
path: |
308+
${{ env.RENV_PATHS_ROOT }}
309+
renv/library
310+
key: ${{ steps.cache-renv-packages-restore.outputs.cache-primary-key }}
311+
300312
- uses: actions/upload-artifact@v4
301313
# PLaywright test only runs on Linux for now
302314
if: ${{ !cancelled() && runner.os != 'Windows' }}

0 commit comments

Comments
 (0)