39
39
run_pkgdown : ' true'
40
40
has_RUnit : ' false'
41
41
cache-version : ' cache-v1'
42
+ run_docker : ' false'
42
43
43
44
jobs :
44
45
build-check :
@@ -48,12 +49,14 @@ jobs:
48
49
# # Environment variables unique to this job.
49
50
50
51
strategy :
51
- fail-fast : true
52
+ fail-fast : false
52
53
matrix :
53
54
config :
54
- - { 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" }
55
- - { os: macOS-latest, r: '4.2', bioc: '3.16'}
56
- - { os: windows-latest, r: '4.2', bioc: '3.16'}
55
+ - { os: ubuntu-latest, r: '4.3', bioc: '3.19', cont: "bioconductor/bioconductor_docker:devel", rspm: "https://packagemanager.rstudio.com/cran/__linux__/jammy/latest" }
56
+ - { os: macOS-latest, r: '4.3', bioc: '3.18'}
57
+ - { os: windows-latest, r: '4.3', bioc: '3.18'}
58
+ # # Check https://github.com/r-lib/actions/tree/master/examples
59
+ # # for examples using the http-user-agent
57
60
env :
58
61
R_REMOTES_NO_ERRORS_FROM_WARNINGS : true
59
62
RSPM : ${{ matrix.config.rspm }}
@@ -76,14 +79,15 @@ jobs:
76
79
# # https://github.com/r-lib/actions/blob/master/examples/check-standard.yaml
77
80
# # If they update their steps, we will also need to update ours.
78
81
- name : Checkout Repository
79
- uses : actions/checkout@v2
82
+ uses : actions/checkout@v3
80
83
81
84
# # R is already included in the Bioconductor docker images
82
85
- name : Setup R from r-lib
83
86
if : runner.os != 'Linux'
84
87
uses : r-lib/actions/setup-r@v2
85
88
with :
86
89
r-version : ${{ matrix.config.r }}
90
+ http-user-agent : ${{ matrix.config.http-user-agent }}
87
91
88
92
# # pandoc is already included in the Bioconductor docker images
89
93
- name : Setup pandoc from r-lib
@@ -96,26 +100,28 @@ jobs:
96
100
saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2)
97
101
shell : Rscript {0}
98
102
99
- - name : Cache R packages
103
+ - name : Restore R package cache
100
104
if : " !contains(github.event.head_commit.message, '/nocache') && runner.os != 'Linux'"
101
- uses : actions/cache@v2
105
+ uses : actions/cache@v3
102
106
with :
103
107
path : ${{ env.R_LIBS_USER }}
104
- key : " ${{ env.cache-version }}-${{ runner.os }}-biocversion-RELEASE_${{ matrix.config.bioc }}r-{{ matrix.config.r }}"
108
+ key : ${{ env.cache-version }}-${{ runner.os }}-biocversion-devel-r-4.3-${{ hashFiles('.github/depends.Rds') }}
109
+ restore-keys : ${{ env.cache-version }}-${{ runner.os }}-biocversion-devel-r-4.3-
105
110
106
111
- name : Cache R packages on Linux
107
112
if : " !contains(github.event.head_commit.message, '/nocache') && runner.os == 'Linux' "
108
- uses : actions/cache@v2
113
+ uses : actions/cache@v3
109
114
with :
110
115
path : /home/runner/work/_temp/Library
111
- key : " ${{ env.cache-version }}-${{ runner.os }}-biocversion-RELEASE_${{ matrix.config.bioc }}r-{{ matrix.config.r }}"
116
+ key : ${{ env.cache-version }}-${{ runner.os }}-biocversion-devel-r-4.3-${{ hashFiles('.github/depends.Rds') }}
117
+ restore-keys : ${{ env.cache-version }}-${{ runner.os }}-biocversion-devel-r-4.3-
112
118
113
- - name : Install Linux system dependencies
114
- if : runner.os == 'Linux'
115
- run : |
116
- sysreqs=$(Rscript -e 'cat("apt-get update -y && apt-get install -y", paste(gsub("apt-get install -y ", "", remotes::system_requirements("ubuntu", "20.04")), collapse = " "))')
117
- echo $sysreqs
118
- sudo -s eval "$sysreqs"
119
+ # - name: Install Linux system dependencies
120
+ # if: runner.os == 'Linux'
121
+ # run: |
122
+ # sysreqs=$(Rscript -e 'cat("apt-get update -y && apt-get install -y", paste(gsub("apt-get install -y ", "", remotes::system_requirements("ubuntu", "20.04")), collapse = " "))')
123
+ # echo $sysreqs
124
+ # sudo -s eval "$sysreqs"
119
125
120
126
- name : Install macOS system dependencies
121
127
if : matrix.config.os == 'macOS-latest'
@@ -133,10 +139,9 @@ jobs:
133
139
134
140
## For installing usethis's dependency gert
135
141
brew install libgit2
136
-
137
- ## To fix x11/cairo error with tidyHeatmap/Complexheatmap here https://github.com/stemangiola/tidybulk/runs/1388237421?check_suite_focus=true#step:14:2134
138
- ## Suggested here https://stackoverflow.com/questions/63648591/how-to-install-x11-before-testing-with-github-actions-for-macos
139
- brew install --cask xquartz
142
+
143
+ ## Required for tcltk
144
+ brew install xquartz --cask
140
145
141
146
- name : Install Windows system dependencies
142
147
if : runner.os == 'Windows'
@@ -147,12 +152,12 @@ jobs:
147
152
- name : Install BiocManager
148
153
run : |
149
154
message(paste('****', Sys.time(), 'installing BiocManager ****'))
150
- remotes::install_github("Bioconductor/ BiocManager")
155
+ remotes::install_cran(" BiocManager")
151
156
shell : Rscript {0}
152
157
153
158
- name : Set BiocVersion
154
159
run : |
155
- BiocManager::install(version = "${{ matrix.config.bioc }}", ask = FALSE)
160
+ BiocManager::install(version = "${{ matrix.config.bioc }}", ask = FALSE, force = TRUE )
156
161
shell : Rscript {0}
157
162
158
163
- name : Install dependencies pass 1
@@ -164,6 +169,10 @@ jobs:
164
169
## https://github.com/r-lib/remotes/issues/296
165
170
## Ideally, all dependencies should get installed in the first pass.
166
171
172
+ ## For running the checks
173
+ message(paste('****', Sys.time(), 'installing rcmdcheck and BiocCheck ****'))
174
+ install.packages(c("rcmdcheck", "BiocCheck"), repos = BiocManager::repositories())
175
+
167
176
## Pass #1 at installing dependencies
168
177
message(paste('****', Sys.time(), 'pass number 1 at installing dependencies: local dependencies ****'))
169
178
remotes::install_local(dependencies = TRUE, repos = BiocManager::repositories(), build_vignettes = FALSE, upgrade = TRUE)
@@ -174,12 +183,7 @@ jobs:
174
183
run : |
175
184
## Pass #2 at installing dependencies
176
185
message(paste('****', Sys.time(), 'pass number 2 at installing dependencies: any remaining dependencies ****'))
177
- remotes::install_local(dependencies = TRUE, repos = BiocManager::repositories(), build_vignettes = FALSE, upgrade = TRUE)
178
-
179
- ## For running the checks
180
- message(paste('****', Sys.time(), 'installing rcmdcheck and BiocCheck ****'))
181
- remotes::install_cran("rcmdcheck")
182
- BiocManager::install("BiocCheck")
186
+ remotes::install_local(dependencies = TRUE, repos = BiocManager::repositories(), build_vignettes = TRUE, upgrade = TRUE, force = TRUE)
183
187
shell : Rscript {0}
184
188
185
189
- name : Install BiocGenerics
@@ -190,15 +194,15 @@ jobs:
190
194
shell : Rscript {0}
191
195
192
196
- name : Install covr
193
- if : github.ref == 'refs/heads/master ' && env.run_covr == 'true' && runner.os == 'Linux'
197
+ if : github.ref == 'refs/heads/devel ' && env.run_covr == 'true' && runner.os == 'Linux'
194
198
run : |
195
199
remotes::install_cran("covr")
196
200
shell : Rscript {0}
197
201
198
202
- name : Install pkgdown
199
- if : github.ref == 'refs/heads/master ' && env.run_pkgdown == 'true' && runner.os == 'Linux'
203
+ if : github.ref == 'refs/heads/devel ' && env.run_pkgdown == 'true' && runner.os == 'Linux'
200
204
run : |
201
- remotes::install_cran(" pkgdown")
205
+ remotes::install_github("r-lib/ pkgdown")
202
206
shell : Rscript {0}
203
207
204
208
- name : Session info
@@ -211,10 +215,12 @@ jobs:
211
215
- name : Run CMD check
212
216
env :
213
217
_R_CHECK_CRAN_INCOMING_ : false
218
+ DISPLAY : 99.0
214
219
run : |
220
+ options(crayon.enabled = TRUE)
215
221
rcmdcheck::rcmdcheck(
216
- args = c("--no-manual", "--timings"),
217
- build_args = c("--no-manual", "--no-resave-data"),
222
+ args = c("--no-manual", "--no-vignettes", "-- timings"),
223
+ build_args = c("--no-manual", "--keep-empty-dirs", "-- no-resave-data"),
218
224
error_on = "warning",
219
225
check_dir = "check"
220
226
)
@@ -232,45 +238,101 @@ jobs:
232
238
shell : Rscript {0}
233
239
234
240
- name : Run BiocCheck
241
+ env :
242
+ DISPLAY : 99.0
235
243
run : |
236
244
BiocCheck::BiocCheck(
237
245
dir('check', 'tar.gz$', full.names = TRUE),
238
246
`quit-with-status` = TRUE,
239
247
`no-check-R-ver` = TRUE,
240
- `no-check-bioc-help` = TRUE,
241
- `new-package` = TRUE
248
+ `no-check-bioc-help` = TRUE
242
249
)
243
250
shell : Rscript {0}
244
251
245
252
- name : Test coverage
246
- if : github.ref == 'refs/heads/master ' && env.run_covr == 'true' && runner.os == 'Linux'
253
+ if : github.ref == 'refs/heads/devel ' && env.run_covr == 'true' && runner.os == 'Linux'
247
254
run : |
248
255
covr::codecov()
249
256
shell : Rscript {0}
250
257
251
258
- name : Install package
252
- if : github.ref == 'refs/heads/master ' && env.run_pkgdown == 'true' && runner.os == 'Linux'
259
+ if : github.ref == 'refs/heads/devel ' && env.run_pkgdown == 'true' && runner.os == 'Linux'
253
260
run : R CMD INSTALL .
254
261
255
- - name : Deploy package
256
- if : github.ref == 'refs/heads/master' && env.run_pkgdown == 'true' && runner.os == 'Linux'
257
- run : |
258
- ## Temporary workaround for https://github.com/actions/checkout/issues/766
259
- git config --global --add safe.directory "$GITHUB_WORKSPACE"
260
-
261
- git config --local user.email "[email protected] "
262
- git config --local user.name "GitHub Actions"
263
- Rscript -e "pkgdown::deploy_to_branch(new_process = FALSE)"
264
- shell : bash {0}
262
+ - name : Build pkgdown site
263
+ if : github.ref == 'refs/heads/devel' && env.run_pkgdown == 'true' && runner.os == 'Linux'
264
+ run : pkgdown::build_site_github_pages(new_process = FALSE, install = FALSE)
265
+ shell : Rscript {0}
265
266
# # Note that you need to run pkgdown::deploy_to_branch(new_process = FALSE)
266
267
# # at least one locally before this will work. This creates the gh-pages
267
268
# # branch (erasing anything you haven't version controlled!) and
268
269
# # makes the git history recognizable by pkgdown.
269
270
271
+ - name : Install deploy dependencies
272
+ if : github.ref == 'refs/heads/devel' && env.run_pkgdown == 'true' && runner.os == 'Linux'
273
+ run : |
274
+ apt-get update && apt-get -y install rsync
275
+
276
+ - name : Deploy pkgdown site to GitHub pages 🚀
277
+ if : github.ref == 'refs/heads/devel' && env.run_pkgdown == 'true' && runner.os == 'Linux'
278
+ uses : JamesIves/github-pages-deploy-action@releases/v4
279
+ with :
280
+ clean : false
281
+ branch : gh-pages
282
+ folder : docs
283
+
270
284
- name : Upload check results
271
285
if : failure()
272
- uses : actions/upload-artifact@v2
286
+ uses : actions/upload-artifact@master
273
287
with :
274
- name : ${{ runner.os }}-biocversion-RELEASE_3_15 -r-4.2 -results
288
+ name : ${{ runner.os }}-biocversion-devel -r-4.3 -results
275
289
path : check
276
-
290
+
291
+
292
+ # # Code adapted from
293
+ # # https://github.com/waldronlab/cBioPortalData/blob/e0440a4445f0cc731e426363a76faa22ee5e0f9d/.github/workflows/devel_check_dock.yml#L65-L92
294
+ docker-build-and-push :
295
+ runs-on : ubuntu-latest
296
+ needs : build-check
297
+ steps :
298
+ - name : Checkout Repository
299
+ if : " !contains(github.event.head_commit.message, '/nodocker') && env.run_docker == 'true' && github.ref == 'refs/heads/devel'"
300
+ uses : actions/checkout@v3
301
+
302
+ - name : Register repo name
303
+ if : " !contains(github.event.head_commit.message, '/nodocker') && env.run_docker == 'true' && github.ref == 'refs/heads/devel'"
304
+ id : reg_repo_name
305
+ run : |
306
+ echo CONT_IMG_NAME=$(echo ${{ github.event.repository.name }} | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV
307
+
308
+ - name : Set up QEMU
309
+ if : " !contains(github.event.head_commit.message, '/nodocker') && env.run_docker == 'true' && github.ref == 'refs/heads/devel'"
310
+ uses : docker/setup-qemu-action@v2
311
+
312
+ - name : Set up Docker Buildx
313
+ if : " !contains(github.event.head_commit.message, '/nodocker') && env.run_docker == 'true' && github.ref == 'refs/heads/devel'"
314
+ uses : docker/setup-buildx-action@v2
315
+
316
+ - name : Login to Docker Hub
317
+ if : " !contains(github.event.head_commit.message, '/nodocker') && env.run_docker == 'true' && github.ref == 'refs/heads/devel'"
318
+ uses : docker/login-action@v2
319
+ with :
320
+ username : ${{ secrets.DOCKERHUB_USERNAME }}
321
+ password : ${{ secrets.DOCKERHUB_TOKEN }}
322
+ # # Note that DOCKERHUB_TOKEN is really a token for your dockerhub
323
+ # # account, not your actual dockerhub account password. You can get it
324
+ # # from https://hub.docker.com/settings/security.
325
+ # # Check https://github.com/docker/build-push-action/tree/v4.0.0
326
+ # # for more details.
327
+ # # Alternatively, try checking
328
+ # # https://seandavi.github.io/BuildABiocWorkshop/articles/HOWTO_BUILD_WORKSHOP.html.
329
+
330
+ - name : Build and Push Docker
331
+ if : " !contains(github.event.head_commit.message, '/nodocker') && env.run_docker == 'true' && github.ref == 'refs/heads/devel' && success()"
332
+ uses : docker/build-push-action@v4
333
+ with :
334
+ context : .
335
+ push : true
336
+ tags : >
337
+ ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.CONT_IMG_NAME }}:latest,
338
+ ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.CONT_IMG_NAME }}:devel
0 commit comments