Bioconductor

library(rworkflows)

Branch-specific workflows

It may be desirable to set up multiple workflow files within the same repository. A common use case for this is for Bioconductor packages, which rely on version-controlled release schedules.

Because of the release schedule, you may want to have different virtual machine (VM) setups for each version of your package (which are stored on different branches of the same GitHub repository).

devel branch

Only use the devel version of Bioc when launching GitHub Actions from the devel branch.

v <- "devel"
f1 <- use_workflow(name = paste("rworkflows",v,sep="."), 
                   branches = v, 
                   runners = construct_runners(bioc = v), 
                   preview = TRUE,
                   force_new = TRUE,
                   save_dir = tempdir() # For demo only, use default in practice
                   ) 
## Applying the same 'bioc' parameter to all 3 'os': 'devel'
## name: rworkflows.devel
## 'on':
##   push:
##     branches: devel
##   pull_request:
##     branches: devel
## jobs:
##   rworkflows:
##     permissions: write-all
##     runs-on: ${{ matrix.config.os }}
##     name: ${{ matrix.config.os }} (${{ matrix.config.r }})
##     container: ${{ matrix.config.cont }}
##     strategy:
##       fail-fast: no
##       matrix:
##         config:
##         - os: ubuntu-latest
##           bioc: devel
##           r: auto
##           cont: ghcr.io/bioconductor/bioconductor_docker:devel
##           rspm: ~
##         - os: macOS-latest
##           bioc: devel
##           r: auto
##           cont: ~
##           rspm: ~
##         - os: windows-latest
##           bioc: devel
##           r: auto
##           cont: ~
##           rspm: ~
##     steps:
##     - uses: neurogenomics/rworkflows@master
##       with:
##         run_bioccheck: no
##         run_rcmdcheck: yes
##         as_cran: yes
##         run_vignettes: yes
##         has_testthat: yes
##         run_covr: yes
##         run_pkgdown: yes
##         has_runit: no
##         has_latex: no
##         GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
##         run_docker: no
##         DOCKER_TOKEN: ${{ secrets.DOCKER_TOKEN }}
##         runner_os: ${{ runner.os }}
##         cache_version: cache-v1
##         docker_registry: ghcr.io
## Saving yaml ==> /tmp/Rtmpm7Mxwl/rworkflows.devel.yml

RELEASE_3_17 branch

Only use the 3.17 release version of Bioc when launching GitHub Actions from the RELEASE_3_17 branch.

v <- "RELEASE_3_17"
f2 <- use_workflow(name = paste("rworkflows",v,sep="."), 
                   branches = v, 
                   runners = construct_runners(bioc = v), 
                   preview = TRUE,
                   force_new = TRUE,
                   save_dir = tempdir() # For demo only, use default in practice
                   ) 
## Applying the same 'bioc' parameter to all 3 'os': 'RELEASE_3_17'
## name: rworkflows.RELEASE_3_17
## 'on':
##   push:
##     branches: RELEASE_3_17
##   pull_request:
##     branches: RELEASE_3_17
## jobs:
##   rworkflows:
##     permissions: write-all
##     runs-on: ${{ matrix.config.os }}
##     name: ${{ matrix.config.os }} (${{ matrix.config.r }})
##     container: ${{ matrix.config.cont }}
##     strategy:
##       fail-fast: no
##       matrix:
##         config:
##         - os: ubuntu-latest
##           bioc: '3.17'
##           r: auto
##           cont: ghcr.io/bioconductor/bioconductor_docker:RELEASE_3_17
##           rspm: ~
##         - os: macOS-latest
##           bioc: '3.17'
##           r: auto
##           cont: ~
##           rspm: ~
##         - os: windows-latest
##           bioc: '3.17'
##           r: auto
##           cont: ~
##           rspm: ~
##     steps:
##     - uses: neurogenomics/rworkflows@master
##       with:
##         run_bioccheck: no
##         run_rcmdcheck: yes
##         as_cran: yes
##         run_vignettes: yes
##         has_testthat: yes
##         run_covr: yes
##         run_pkgdown: yes
##         has_runit: no
##         has_latex: no
##         GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
##         run_docker: no
##         DOCKER_TOKEN: ${{ secrets.DOCKER_TOKEN }}
##         runner_os: ${{ runner.os }}
##         cache_version: cache-v1
##         docker_registry: ghcr.io
## Saving yaml ==> /tmp/Rtmpm7Mxwl/rworkflows.RELEASE_3_17.yml

RELEASE_* branches

Only use the latest release version of Bioc when launching GitHub Actions from any RELEASE_* branch.

v <- "RELEASE_*"
f3 <- use_workflow(name = paste("rworkflows",v,sep="."), 
                   branches = v, 
                   runners = construct_runners(bioc = v), 
                   preview = TRUE,
                   force_new = TRUE,
                   save_dir = tempdir() # For demo only, use default in practice
                   ) 

Session Info

utils::sessionInfo()
## R version 4.4.1 (2024-06-14)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 24.04.1 LTS
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 
## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so;  LAPACK version 3.12.0
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=C              
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## time zone: Etc/UTC
## tzcode source: system (glibc)
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] rworkflows_1.0.3 rmarkdown_2.28  
## 
## loaded via a namespace (and not attached):
##  [1] gtable_0.3.6        jsonlite_1.8.9      renv_1.0.11        
##  [4] BiocManager_1.30.25 dplyr_1.1.4         compiler_4.4.1     
##  [7] tidyselect_1.2.1    jquerylib_0.1.4     rvcheck_0.2.1      
## [10] scales_1.3.0        yaml_2.3.10         fastmap_1.2.0      
## [13] here_1.0.1          ggplot2_3.5.1       R6_2.5.1           
## [16] generics_0.1.3      knitr_1.48          yulab.utils_0.1.7  
## [19] tibble_3.2.1        desc_1.4.3          dlstats_0.1.7      
## [22] maketools_1.3.1     rprojroot_2.0.4     munsell_0.5.1      
## [25] bslib_0.8.0         pillar_1.9.0        RColorBrewer_1.1-3 
## [28] rlang_1.1.4         utf8_1.2.4          cachem_1.1.0       
## [31] badger_0.2.4        xfun_0.49           fs_1.6.5           
## [34] sass_0.4.9          sys_3.4.3           cli_3.6.3          
## [37] magrittr_2.0.3      digest_0.6.37       grid_4.4.1         
## [40] lifecycle_1.0.4     vctrs_0.6.5         data.table_1.16.2  
## [43] evaluate_1.0.1      glue_1.8.0          buildtools_1.0.0   
## [46] fansi_1.0.6         colorspace_2.1-1    tools_4.4.1        
## [49] pkgconfig_2.0.3     htmltools_0.5.8.1