@@ -105,14 +105,16 @@ jobs:
105
105
cat("r-version=", R.Version()$version.string, "\n", file = Sys.getenv("GITHUB_OUTPUT"), sep = "", append = TRUE)
106
106
shell : Rscript {0}
107
107
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
110
111
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') }}
113
116
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-
116
118
117
119
- name : Install missing system deps
118
120
if : runner.os == 'Linux'
@@ -130,8 +132,8 @@ jobs:
130
132
renv::restore()
131
133
# Install dev versions for our testing
132
134
# Use r-universe to avoid github api calls
133
- try(install.packages('knitr ', repos = 'https://yihui .r-universe.dev'))
134
- try(install.packages('rmarkdown ', repos = 'https://rstudio .r-universe.dev'))
135
+ try(install.packages('rmarkdown ', repos = c( 'https://rstudio .r-universe.dev', getOption('repos')) ))
136
+ try(install.packages('knitr ', repos = c( 'https://yihui .r-universe.dev', getOption('repos')) ))
135
137
if ('${{ inputs.extra-r-packages }}' != '') {
136
138
cat(sprintf("::notice::Running with the following extra R packages for pak: %s\n", "${{ inputs.extra-r-packages }}"))
137
139
renv::install(strsplit("${{ inputs.extra-r-packages }}", split = ",")[[1]])
@@ -143,7 +145,7 @@ jobs:
143
145
- name : Install uv for Python
144
146
uses : astral-sh/setup-uv@v3
145
147
with :
146
- version : " 0.4.30 "
148
+ version : " 0.5.9 "
147
149
enable-cache : true
148
150
cache-dependency-glob : " tests/uv.lock"
149
151
@@ -161,6 +163,7 @@ jobs:
161
163
quarto install tinytex
162
164
163
165
- name : Cache Typst packages
166
+ id : cache-typst
164
167
uses : ./.github/actions/cache-typst
165
168
166
169
- name : Install Chrome
@@ -169,7 +172,7 @@ jobs:
169
172
- name : Setup Julia
170
173
uses : julia-actions/setup-julia@v2
171
174
with :
172
- version : " 1.10 "
175
+ version : " 1.11.3 "
173
176
174
177
- name : Cache Julia Packages
175
178
uses : julia-actions/cache@v2
@@ -183,7 +186,7 @@ jobs:
183
186
export JUPYTER=$(find $(dirname $(uv run --frozen which jupyter))/ -type f -name "jupyter.exe" -o -name "jupyter")
184
187
uv run --frozen julia --color=yes --project=. -e "import Pkg; Pkg.instantiate(); Pkg.build(\"IJulia\"); Pkg.precompile()"
185
188
echo "Julia Jupyter:"
186
- julia --project=. -e "import IJulia;println(IJulia.JUPYTER);println(IJulia.find_jupyter_subcommand(\"notebook\"))"
189
+ uv run julia --project=. -e "import IJulia;println(IJulia.JUPYTER);println(IJulia.find_jupyter_subcommand(\"notebook\"))"
187
190
188
191
- name : Setup timing file for timed test
189
192
if : ${{ matrix.time-test == true }}
@@ -289,9 +292,26 @@ jobs:
289
292
name : timed test file
290
293
path : tests/timing-for-ci.txt
291
294
295
+ - name : Save Typst cache
296
+ if : always() && steps.cache-typst.outputs.cache-hit != 'true'
297
+ uses : actions/cache/save@v4
298
+ with :
299
+ key : ${{ steps.cache-typst.outputs.cache-primary-key }}
300
+ path : ${{ steps.cache-typst.outputs.cache-path }}
301
+
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
+
292
312
- uses : actions/upload-artifact@v4
293
- # PLaywright test only runs on Linux for now
294
- if : ${{ !cancelled() && runner.os != 'Windows' }}
313
+ # Upload pLaywright test report if they exists (playwright is only running on Linux for now)
314
+ if : ${{ !cancelled() && runner.os != 'Windows' && hashFiles('tests/integration/playwright/playwright-report/**/*') != '' }}
295
315
with :
296
316
name : playwright-report
297
317
path : ./tests/integration/playwright/playwright-report/
0 commit comments