Author: Authors: Brian Schilder, Alan Murphy, Hiranyamaya (Hiru) Dash, Nathan Skene

# Bioconductor

####

####
Authors: Brian Schilder, Alan Murphy, Hiranyamaya (Hiru) Dash, Nathan Skene

####

####
Vignette updated: May-05-2026

    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_lintr: yes
    ##         run_spelling: 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 }}
    ##         CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
    ##         runner_os: ${{ runner.os }}
    ##         cache_version: cache-v1
    ##         ncpus: 2.0
    ##         docker_registry: ghcr.io
    ##         timeout: 2000.0
    ##         force_install: no
    ##         run_telemetry: yes
    ##         free_diskspace: no

    ## Saving yaml ==> /var/folders/5d/096bjcsd4l962yck4bj923zm0000gn/T//RtmpTL0rOj/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_lintr: yes
    ##         run_spelling: 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 }}
    ##         CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
    ##         runner_os: ${{ runner.os }}
    ##         cache_version: cache-v1
    ##         ncpus: 2.0
    ##         docker_registry: ghcr.io
    ##         timeout: 2000.0
    ##         force_install: no
    ##         run_telemetry: yes
    ##         free_diskspace: no

    ## Saving yaml ==> /var/folders/5d/096bjcsd4l962yck4bj923zm0000gn/T//RtmpTL0rOj/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.6.0 (2026-04-24)
    ## Platform: aarch64-apple-darwin23
    ## Running under: macOS Tahoe 26.4.1
    ##
    ## Matrix products: default
    ## BLAS:   /Library/Frameworks/R.framework/Versions/4.6/Resources/lib/libRblas.0.dylib
    ## LAPACK: /Library/Frameworks/R.framework/Versions/4.6/Resources/lib/libRlapack.dylib;  LAPACK version 3.12.1
    ##
    ## locale:
    ## [1] C/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
    ##
    ## time zone: Europe/London
    ## tzcode source: internal
    ##
    ## attached base packages:
    ## [1] stats     graphics  grDevices utils     datasets  methods   base
    ##
    ## other attached packages:
    ## [1] rworkflows_1.0.12
    ##
    ## loaded via a namespace (and not attached):
    ##  [1] gtable_0.3.6        jsonlite_2.0.0      renv_1.2.2
    ##  [4] dplyr_1.2.1         compiler_4.6.0      BiocManager_1.30.27
    ##  [7] tidyselect_1.2.1    jquerylib_0.1.4     rvcheck_0.2.1
    ## [10] scales_1.4.0        yaml_2.3.12         fastmap_1.2.0
    ## [13] here_1.0.2          ggplot2_4.0.3       R6_2.6.1
    ## [16] generics_0.1.4      curl_7.1.0          knitr_1.51
    ## [19] yulab.utils_0.2.4   tibble_3.3.1        desc_1.4.3
    ## [22] dlstats_0.1.7       rprojroot_2.1.1     bslib_0.10.0
    ## [25] pillar_1.11.1       RColorBrewer_1.1-3  rlang_1.2.0
    ## [28] cachem_1.1.0        badger_0.2.5        xfun_0.57
    ## [31] fs_2.1.0            sass_0.4.10         S7_0.2.2
    ## [34] otel_0.2.0          cli_3.6.6           magrittr_2.0.5
    ## [37] digest_0.6.39       grid_4.6.0          rstudioapi_0.18.0
    ## [40] rappdirs_0.3.4      lifecycle_1.0.5     vctrs_0.7.3
    ## [43] data.table_1.18.2.1 evaluate_1.0.5      glue_1.8.1
    ## [46] farver_2.1.2        rmarkdown_2.31      tools_4.6.0
    ## [49] pkgconfig_2.0.3     htmltools_0.5.9