38
38
run_covr : ' true'
39
39
run_pkgdown : ' false'
40
40
has_RUnit : ' false'
41
- cache-version : ' cache-v5 '
42
-
41
+ cache-version : ' cache-v1 '
42
+ run_docker : ' false '
43
43
44
44
jobs :
45
45
build-check :
52
52
fail-fast : false
53
53
matrix :
54
54
config :
55
- - { os: ubuntu-latest, r: 'devel', bioc: '3.15', cont: "bioconductor/bioconductor_docker:devel", rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest" }
56
- - { os: macOS-latest, r: 'devel', bioc: 'devel'}
57
- - { os: windows-latest, r: 'devel', bioc: 'devel'}
55
+ - { os: ubuntu-latest, r: '4.2', bioc: '3.16', cont: "bioconductor/bioconductor_docker:RELEASE_3_16", rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest" }
56
+ - { os: macOS-latest, r: '4.2', bioc: '3.16'}
57
+ - { os: windows-latest, r: '4.2', bioc: '3.16'}
58
+ # # Check https://github.com/r-lib/actions/tree/master/examples
59
+ # # for examples using the http-user-agent
58
60
env :
59
61
R_REMOTES_NO_ERRORS_FROM_WARNINGS : true
60
62
RSPM : ${{ matrix.config.rspm }}
@@ -77,41 +79,42 @@ jobs:
77
79
# # https://github.com/r-lib/actions/blob/master/examples/check-standard.yaml
78
80
# # If they update their steps, we will also need to update ours.
79
81
- name : Checkout Repository
80
- uses : actions/checkout@v2
82
+ uses : actions/checkout@v3
81
83
82
84
# # R is already included in the Bioconductor docker images
83
85
- name : Setup R from r-lib
84
86
if : runner.os != 'Linux'
85
- uses : r-lib/actions/setup-r@master
87
+ uses : r-lib/actions/setup-r@v2
86
88
with :
87
89
r-version : ${{ matrix.config.r }}
90
+ http-user-agent : ${{ matrix.config.http-user-agent }}
88
91
89
92
# # pandoc is already included in the Bioconductor docker images
90
93
- name : Setup pandoc from r-lib
91
94
if : runner.os != 'Linux'
92
- uses : r-lib/actions/setup-pandoc@master
95
+ uses : r-lib/actions/setup-pandoc@v2
93
96
94
97
- name : Query dependencies
95
98
run : |
96
99
install.packages('remotes')
97
100
saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2)
98
101
shell : Rscript {0}
99
102
100
- - name : Cache R packages
103
+ - name : Restore R package cache
101
104
if : " !contains(github.event.head_commit.message, '/nocache') && runner.os != 'Linux'"
102
- uses : actions/cache@v2
105
+ uses : actions/cache@v3
103
106
with :
104
107
path : ${{ env.R_LIBS_USER }}
105
- key : ${{ env.cache-version }}-${{ runner.os }}-biocversion-devel -r-devel -${{ hashFiles('.github/depends.Rds') }}
106
- restore-keys : ${{ env.cache-version }}-${{ runner.os }}-biocversion-devel -r-devel -
108
+ key : ${{ env.cache-version }}-${{ runner.os }}-biocversion-RELEASE_3_16 -r-4.2 -${{ hashFiles('.github/depends.Rds') }}
109
+ restore-keys : ${{ env.cache-version }}-${{ runner.os }}-biocversion-RELEASE_3_16 -r-4.2 -
107
110
108
111
- name : Cache R packages on Linux
109
112
if : " !contains(github.event.head_commit.message, '/nocache') && runner.os == 'Linux' "
110
- uses : actions/cache@v2
113
+ uses : actions/cache@v3
111
114
with :
112
115
path : /home/runner/work/_temp/Library
113
- key : ${{ env.cache-version }}-${{ runner.os }}-biocversion-devel -r-devel -${{ hashFiles('.github/depends.Rds') }}
114
- restore-keys : ${{ env.cache-version }}-${{ runner.os }}-biocversion-devel -r-devel -
116
+ key : ${{ env.cache-version }}-${{ runner.os }}-biocversion-RELEASE_3_16 -r-4.2 -${{ hashFiles('.github/depends.Rds') }}
117
+ restore-keys : ${{ env.cache-version }}-${{ runner.os }}-biocversion-RELEASE_3_16 -r-4.2 -
115
118
116
119
- name : Install Linux system dependencies
117
120
if : runner.os == 'Linux'
@@ -137,6 +140,9 @@ jobs:
137
140
## For installing usethis's dependency gert
138
141
brew install libgit2
139
142
143
+ ## Required for tcltk
144
+ brew install xquartz --cask
145
+
140
146
- name : Install Windows system dependencies
141
147
if : runner.os == 'Windows'
142
148
run : |
@@ -151,7 +157,7 @@ jobs:
151
157
152
158
- name : Set BiocVersion
153
159
run : |
154
- BiocManager::install(version = "${{ matrix.config.bioc }}", ask = FALSE)
160
+ BiocManager::install(version = "${{ matrix.config.bioc }}", ask = FALSE, force = TRUE )
155
161
shell : Rscript {0}
156
162
157
163
- name : Install dependencies pass 1
@@ -163,22 +169,37 @@ jobs:
163
169
## https://github.com/r-lib/remotes/issues/296
164
170
## Ideally, all dependencies should get installed in the first pass.
165
171
172
+ ## Set the repos source depending on the OS
173
+ ## Alternatively use https://storage.googleapis.com/bioconductor_docker/packages/
174
+ ## though based on https://bit.ly/bioc2021-package-binaries
175
+ ## the Azure link will be the main one going forward.
176
+ gha_repos <- if(
177
+ .Platform$OS.type == "unix" && Sys.info()["sysname"] != "Darwin"
178
+ ) c(
179
+ "AnVIL" = "https://bioconductordocker.blob.core.windows.net/packages/3.16/bioc",
180
+ BiocManager::repositories()
181
+ ) else BiocManager::repositories()
182
+
183
+ ## For running the checks
184
+ message(paste('****', Sys.time(), 'installing rcmdcheck and BiocCheck ****'))
185
+ install.packages(c("rcmdcheck", "BiocCheck"), repos = gha_repos)
186
+
166
187
## Pass #1 at installing dependencies
188
+ ## This pass uses AnVIL-powered fast binaries
189
+ ## details at https://github.com/nturaga/bioc2021-bioconductor-binaries
190
+ ## The speed gains only apply to the docker builds.
167
191
message(paste('****', Sys.time(), 'pass number 1 at installing dependencies: local dependencies ****'))
168
- remotes::install_local(dependencies = TRUE, repos = BiocManager::repositories() , build_vignettes = TRUE , upgrade = TRUE)
192
+ remotes::install_local(dependencies = TRUE, repos = gha_repos , build_vignettes = FALSE , upgrade = TRUE)
169
193
continue-on-error : true
170
194
shell : Rscript {0}
171
195
172
196
- name : Install dependencies pass 2
173
197
run : |
174
198
## Pass #2 at installing dependencies
199
+ ## This pass does not use AnVIL and will thus update any packages
200
+ ## that have seen been updated in Bioconductor
175
201
message(paste('****', Sys.time(), 'pass number 2 at installing dependencies: any remaining dependencies ****'))
176
- remotes::install_local(dependencies = TRUE, repos = BiocManager::repositories(), build_vignettes = TRUE, upgrade = TRUE)
177
-
178
- ## For running the checks
179
- message(paste('****', Sys.time(), 'installing rcmdcheck and BiocCheck ****'))
180
- remotes::install_cran("rcmdcheck")
181
- BiocManager::install("BiocCheck")
202
+ remotes::install_local(dependencies = TRUE, repos = BiocManager::repositories(), build_vignettes = TRUE, upgrade = TRUE, force = TRUE)
182
203
shell : Rscript {0}
183
204
184
205
- name : Install BiocGenerics
@@ -197,7 +218,7 @@ jobs:
197
218
- name : Install pkgdown
198
219
if : github.ref == 'refs/heads/master' && env.run_pkgdown == 'true' && runner.os == 'Linux'
199
220
run : |
200
- remotes::install_github("r-lib/ pkgdown")
221
+ remotes::install_cran(" pkgdown")
201
222
shell : Rscript {0}
202
223
203
224
- name : Session info
@@ -210,10 +231,12 @@ jobs:
210
231
- name : Run CMD check
211
232
env :
212
233
_R_CHECK_CRAN_INCOMING_ : false
234
+ DISPLAY : 99.0
213
235
run : |
236
+ options(crayon.enabled = TRUE)
214
237
rcmdcheck::rcmdcheck(
215
- args = c("--no-build-vignettes ", "--no-manual ", "--timings"),
216
- build_args = c("--no-manual", "--no-resave-data"),
238
+ args = c("--no-manual ", "--no-vignettes ", "--timings"),
239
+ build_args = c("--no-manual", "--keep-empty-dirs", "-- no-resave-data"),
217
240
error_on = "warning",
218
241
check_dir = "check"
219
242
)
@@ -231,14 +254,14 @@ jobs:
231
254
shell : Rscript {0}
232
255
233
256
- name : Run BiocCheck
257
+ env :
258
+ DISPLAY : 99.0
234
259
run : |
235
260
BiocCheck::BiocCheck(
236
261
dir('check', 'tar.gz$', full.names = TRUE),
237
262
`quit-with-status` = TRUE,
238
263
`no-check-R-ver` = TRUE,
239
- `no-check-bioc-help` = TRUE,
240
- `no-check-pkg-size` = TRUE,
241
- `no-check-file-size` = TRUE
264
+ `no-check-bioc-help` = TRUE
242
265
)
243
266
shell : Rscript {0}
244
267
@@ -252,21 +275,47 @@ jobs:
252
275
if : github.ref == 'refs/heads/master' && env.run_pkgdown == 'true' && runner.os == 'Linux'
253
276
run : R CMD INSTALL .
254
277
255
- - name : Deploy package
278
+ - name : Build pkgdown site
256
279
if : github.ref == 'refs/heads/master' && env.run_pkgdown == 'true' && runner.os == 'Linux'
257
- run : |
258
- git config --local user.email "[email protected] "
259
- git config --local user.name "GitHub Actions"
260
- Rscript -e "pkgdown::deploy_to_branch(new_process = FALSE)"
261
- shell : bash {0}
280
+ run : pkgdown::build_site_github_pages(new_process = FALSE, install = FALSE)
281
+ shell : Rscript {0}
262
282
# # Note that you need to run pkgdown::deploy_to_branch(new_process = FALSE)
263
283
# # at least one locally before this will work. This creates the gh-pages
264
284
# # branch (erasing anything you haven't version controlled!) and
265
285
# # makes the git history recognizable by pkgdown.
266
286
287
+ - name : Install deploy dependencies
288
+ if : github.ref == 'refs/heads/master' && env.run_pkgdown == 'true' && runner.os == 'Linux'
289
+ run : |
290
+ apt-get update && apt-get -y install rsync
291
+
292
+ - name : Deploy pkgdown site to GitHub pages 🚀
293
+ if : github.ref == 'refs/heads/master' && env.run_pkgdown == 'true' && runner.os == 'Linux'
294
+ uses : JamesIves/github-pages-deploy-action@releases/v4
295
+ with :
296
+ clean : false
297
+ branch : gh-pages
298
+ folder : docs
299
+
267
300
- name : Upload check results
268
301
if : failure()
269
302
uses : actions/upload-artifact@master
270
303
with :
271
- name : ${{ runner.os }}-biocversion-devel -r-devel -results
304
+ name : ${{ runner.os }}-biocversion-RELEASE_3_16 -r-4.2 -results
272
305
path : check
306
+
307
+ # # Note that DOCKER_PASSWORD is really a token for your dockerhub
308
+ # # account, not your actual dockerhub account password.
309
+ # # This comes from
310
+ # # https://seandavi.github.io/BuildABiocWorkshop/articles/HOWTO_BUILD_WORKSHOP.html#6-add-secrets-to-github-repo
311
+ # # Check https://github.com/docker/build-push-action/tree/releases/v1
312
+ # # for more details.
313
+ - uses : docker/build-push-action@v1
314
+ if : " !contains(github.event.head_commit.message, '/nodocker') && env.run_docker == 'true' && runner.os == 'Linux' "
315
+ with :
316
+ username : ${{ secrets.DOCKER_USERNAME }}
317
+ password : ${{ secrets.DOCKER_PASSWORD }}
318
+ repository : computational-metabolomics/structtoolbox
319
+ tag_with_ref : true
320
+ tag_with_sha : true
321
+ tags : latest
0 commit comments