From 8d07ba951353b38092c7c93d4ab072fb731455ab Mon Sep 17 00:00:00 2001 From: Hugo Gruson Date: Fri, 15 May 2026 15:45:36 +0200 Subject: [PATCH 1/5] Use standard R CMD check workflow --- .github/workflows/R-CMD-check.yaml | 50 ++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .github/workflows/R-CMD-check.yaml diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml new file mode 100644 index 0000000..13c2168 --- /dev/null +++ b/.github/workflows/R-CMD-check.yaml @@ -0,0 +1,50 @@ +# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples +# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help +on: + push: + branches: [main, devel] + pull_request: + +name: R-CMD-check.yaml + +permissions: read-all + +jobs: + R-CMD-check: + runs-on: ${{ matrix.config.os }} + + name: ${{ matrix.config.os }} (${{ matrix.config.r }}) + + strategy: + fail-fast: false + matrix: + config: + - {os: macos-latest, r: 'release'} + - {os: windows-latest, r: 'release'} + - {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'} + - {os: ubuntu-latest, r: 'release'} + + env: + GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} + R_KEEP_PKG_SOURCE: yes + + steps: + - uses: actions/checkout@v6 + + - uses: r-lib/actions/setup-pandoc@v2 + + - uses: r-lib/actions/setup-r@v2 + with: + r-version: ${{ matrix.config.r }} + http-user-agent: ${{ matrix.config.http-user-agent }} + + - uses: r-lib/actions/setup-r-dependencies@v2 + with: + extra-packages: any::rcmdcheck + needs: check + + - uses: r-lib/actions/check-r-package@v2 + with: + upload-snapshots: true + build_args: 'c("--no-manual","--compact-vignettes=gs+qpdf")' + error-on: '"error"' From d448934847ed59bbb113a76e0fb37c9bac5ae352 Mon Sep 17 00:00:00 2001 From: Hugo Gruson Date: Mon, 18 May 2026 09:25:27 +0200 Subject: [PATCH 2/5] Test r-universe workflow --- .github/workflows/r-universe.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .github/workflows/r-universe.yaml diff --git a/.github/workflows/r-universe.yaml b/.github/workflows/r-universe.yaml new file mode 100644 index 0000000..bdf08a8 --- /dev/null +++ b/.github/workflows/r-universe.yaml @@ -0,0 +1,13 @@ +name: Test R-universe + +on: + push: + pull_request: + +jobs: + build: + name: R-universe testing + uses: r-universe-org/workflows/.github/workflows/build.yml@v3 + with: + universe: bioc + organization: bioc \ No newline at end of file From 94d04692203dcdcd046683718b84f3b3e7327e20 Mon Sep 17 00:00:00 2001 From: Hugo Gruson Date: Mon, 18 May 2026 09:25:45 +0200 Subject: [PATCH 3/5] Remove bioc custom workflow --- .github/workflows/check-bioc.yml | 339 ------------------------------- 1 file changed, 339 deletions(-) delete mode 100644 .github/workflows/check-bioc.yml diff --git a/.github/workflows/check-bioc.yml b/.github/workflows/check-bioc.yml deleted file mode 100644 index 1c83649..0000000 --- a/.github/workflows/check-bioc.yml +++ /dev/null @@ -1,339 +0,0 @@ -## Read more about GitHub actions the features of this GitHub Actions workflow -## at https://lcolladotor.github.io/biocthis/articles/biocthis.html#use_bioc_github_action -## -## For more details, check the biocthis developer notes vignette at -## https://lcolladotor.github.io/biocthis/articles/biocthis_dev_notes.html -## -## You can add this workflow to other packages using: -## > biocthis::use_bioc_github_action() -## -## Using GitHub Actions exposes you to many details about how R packages are -## compiled and installed in several operating system.s -### If you need help, please follow the steps listed at -## https://github.com/r-lib/actions#where-to-find-help -## -## If you found an issue specific to biocthis's GHA workflow, please report it -## with the information that will make it easier for others to help you. -## Thank you! - -## Acronyms: -## * GHA: GitHub Action -## * OS: operating system - -on: - push: - branches: - - main - - devel - pull_request: - branches: - - main - - devel - -name: R-CMD-check-bioc - -## These environment variables control whether to run GHA code later on that is -## specific to testthat, covr, and pkgdown. -## -## If you need to clear the cache of packages, update the number inside -## cache-version as discussed at https://github.com/r-lib/actions/issues/86. -## Note that you can always run a GHA test without the cache by using the word -## "/nocache" in the commit message. -env: - has_testthat: 'true' - run_covr: 'false' - run_pkgdown: 'false' - has_RUnit: 'false' - cache-version: 'cache-v1' - run_docker: 'false' - -jobs: - build-check: - runs-on: ${{ matrix.config.os }} - name: ${{ matrix.config.os }} (${{ matrix.config.r }}) - container: ${{ matrix.config.cont }} - ## Environment variables unique to this job. - - strategy: - fail-fast: false - matrix: - config: - #- { os: ubuntu-latest, r: '4.5', bioc: '3.22', cont: "bioconductor/bioconductor_docker:RELEASE_3_22", rspm: "https://p3m.dev/cran/__linux__/noble/latest" } - - { os: ubuntu-latest, r: 'devel', bioc: 'devel', cont: "bioconductor/bioconductor_docker:devel", rspm: "https://p3m.dev/cran/__linux__/noble/latest" } - - { os: macOS-latest, r: 'devel', bioc: 'devel'} - #- { os: windows-latest, r: 'devel', bioc: 'devel'} - ## Check https://github.com/r-lib/actions/tree/master/examples - ## for examples using the http-user-agent - env: - R_REMOTES_NO_ERRORS_FROM_WARNINGS: true - RSPM: ${{ matrix.config.rspm }} - NOT_CRAN: true - TZ: UTC - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} - - steps: - - ## Set the R library to the directory matching the - ## R packages cache step further below when running on Docker (Linux). - - name: Set R Library home on Linux - if: runner.os == 'Linux' - run: | - mkdir /__w/_temp/Library - echo ".libPaths('/__w/_temp/Library')" > ~/.Rprofile - - ## Most of these steps are the same as the ones in - ## https://github.com/r-lib/actions/blob/master/examples/check-standard.yaml - ## If they update their steps, we will also need to update ours. - - name: Checkout Repository - uses: actions/checkout@v3 - - ## R is already included in the Bioconductor docker images - - name: Setup R from r-lib - if: runner.os != 'Linux' - uses: r-lib/actions/setup-r@v2 - with: - r-version: ${{ matrix.config.r }} - http-user-agent: ${{ matrix.config.http-user-agent }} - - ## pandoc is already included in the Bioconductor docker images - - name: Setup pandoc from r-lib - if: runner.os != 'Linux' - uses: r-lib/actions/setup-pandoc@v2 - - - name: Query dependencies - run: | - install.packages('remotes') - saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2) - shell: Rscript {0} - - - name: Restore R package cache - if: "!contains(github.event.head_commit.message, '/nocache') && runner.os != 'Linux'" - uses: actions/cache@v3 - with: - path: ${{ env.R_LIBS_USER }} - key: ${{ env.cache-version }}-${{ runner.os }}-biocversion-devel-r-4.5-${{ hashFiles('.github/depends.Rds') }} - restore-keys: ${{ env.cache-version }}-${{ runner.os }}-biocversion-devel-r-4.5- - - - name: Cache R packages on Linux - if: "!contains(github.event.head_commit.message, '/nocache') && runner.os == 'Linux' " - uses: actions/cache@v3 - with: - path: /home/runner/work/_temp/Library - key: ${{ env.cache-version }}-${{ runner.os }}-biocversion-devel-r-4.5-${{ hashFiles('.github/depends.Rds') }} - restore-keys: ${{ env.cache-version }}-${{ runner.os }}-biocversion-devel-r-4.5- - - - name: Install macOS system dependencies - if: matrix.config.os == 'macOS-latest' - run: | - ## Enable installing XML from source if needed - brew install libxml2 - echo "XML_CONFIG=/usr/local/opt/libxml2/bin/xml2-config" >> $GITHUB_ENV - - ## For textshaping, required by ragg, and required by pkgdown - brew install harfbuzz fribidi - - ## For installing usethis's dependency gert - brew install libgit2 - - ## Required for tcltk - brew install xquartz --cask - - - name: Install Windows system dependencies - if: runner.os == 'Windows' - run: | - ## Edit below if you have any Windows system dependencies - shell: Rscript {0} - - - name: Install BiocManager - run: | - message(paste('****', Sys.time(), 'installing BiocManager ****')) - remotes::install_cran("BiocManager") - shell: Rscript {0} - - - name: Set BiocVersion - run: | - BiocManager::install(version = "${{ matrix.config.bioc }}", ask = FALSE, force = TRUE) - shell: Rscript {0} - - - name: Install dependencies pass 1 - run: | - ## Try installing the package dependencies in steps. First the local - ## dependencies, then any remaining dependencies to avoid the - ## issues described at - ## https://stat.ethz.ch/pipermail/bioc-devel/2020-April/016675.html - ## https://github.com/r-lib/remotes/issues/296 - ## Ideally, all dependencies should get installed in the first pass. - - ## For running the checks - message(paste('****', Sys.time(), 'installing rcmdcheck and BiocCheck ****')) - install.packages(c("rcmdcheck", "BiocCheck", "remotes"), repos = BiocManager::repositories()) - - ## TEMP REMOVE LATER: - ## For now install Rarr from github since ZarrArray needs >= 1.11.33 - # BiocManager::install("Rarr", version = "2.1.8") - - ## Pass #1 at installing dependencies - message(paste('****', Sys.time(), 'pass number 1 at installing dependencies: local dependencies ****')) - remotes::install_local(dependencies = TRUE, repos = BiocManager::repositories(), build_vignettes = FALSE, upgrade = TRUE) - continue-on-error: true - shell: Rscript {0} - - - name: Install dependencies pass 2 - run: | - ## Pass #2 at installing dependencies - message(paste('****', Sys.time(), 'pass number 2 at installing dependencies: any remaining dependencies ****')) - remotes::install_local(dependencies = TRUE, repos = BiocManager::repositories(), build_vignettes = FALSE, upgrade = TRUE, force = TRUE) - shell: Rscript {0} - - - name: Install BiocGenerics - if: env.has_RUnit == 'true' - run: | - ## Install BiocGenerics - BiocManager::install("BiocGenerics") - shell: Rscript {0} - - - name: Install covr - if: github.ref == 'refs/heads/devel' && env.run_covr == 'true' && runner.os == 'Linux' - run: | - remotes::install_cran("covr") - shell: Rscript {0} - - - name: Install pkgdown - if: github.ref == 'refs/heads/devel' && env.run_pkgdown == 'true' && runner.os == 'Linux' - run: | - remotes::install_cran("pkgdown") - shell: Rscript {0} - - - name: Session info - run: | - options(width = 100) - pkgs <- installed.packages()[, "Package"] - sessioninfo::session_info(pkgs, include_base = TRUE) - shell: Rscript {0} - - - name: Run CMD check - env: - _R_CHECK_CRAN_INCOMING_: false - DISPLAY: 99.0 - run: | - options(crayon.enabled = TRUE) - rcmdcheck::rcmdcheck( - args = c("--no-manual", "--no-vignettes", "--timings"), - build_args = c("--no-manual", "--keep-empty-dirs", "--no-resave-data"), - error_on = "error", - check_dir = "check" - ) - shell: Rscript {0} - - ## Might need an to add this to the if: && runner.os == 'Linux' - - name: Reveal testthat details - if: env.has_testthat == 'true' - run: find . -name testthat.Rout -exec cat '{}' ';' - - - name: Run RUnit tests - if: env.has_RUnit == 'true' - run: | - BiocGenerics:::testPackage() - shell: Rscript {0} - - - name: Run BiocCheck - env: - DISPLAY: 99.0 - run: | - BiocCheck::BiocCheck( - dir('check', 'tar.gz$', full.names = TRUE), - `quit-with-status` = TRUE, - `no-check-R-ver` = TRUE, - `no-check-bioc-help` = TRUE, - `no-check-remotes` = TRUE - ) - shell: Rscript {0} - - - name: Test coverage - if: github.ref == 'refs/heads/devel' && env.run_covr == 'true' && runner.os == 'Linux' - run: | - covr::codecov(coverage = covr::package_coverage(type = "all")) - shell: Rscript {0} - - - name: Install package - if: github.ref == 'refs/heads/devel' && env.run_pkgdown == 'true' && runner.os == 'Linux' - run: R CMD INSTALL . - - - name: Build pkgdown site - if: github.ref == 'refs/heads/devel' && env.run_pkgdown == 'true' && runner.os == 'Linux' - run: pkgdown::build_site_github_pages(new_process = FALSE, install = FALSE) - shell: Rscript {0} - ## Note that you need to run pkgdown::deploy_to_branch(new_process = FALSE) - ## at least one locally before this will work. This creates the gh-pages - ## branch (erasing anything you haven't version controlled!) and - ## makes the git history recognizable by pkgdown. - - - name: Install deploy dependencies - if: github.ref == 'refs/heads/devel' && env.run_pkgdown == 'true' && runner.os == 'Linux' - run: | - apt-get update && apt-get -y install rsync - - - name: Deploy pkgdown site to GitHub pages 🚀 - if: github.ref == 'refs/heads/devel' && env.run_pkgdown == 'true' && runner.os == 'Linux' - uses: JamesIves/github-pages-deploy-action@releases/v4 - with: - clean: false - branch: gh-pages - folder: docs - - - name: Upload check results - if: failure() - uses: actions/upload-artifact@master - with: - name: ${{ runner.os }}-biocversion-devel-r-4.5-results - path: check - - - ## Code adapted from - ## https://github.com/waldronlab/cBioPortalData/blob/e0440a4445f0cc731e426363a76faa22ee5e0f9d/.github/workflows/devel_check_dock.yml#L65-L92 - docker-build-and-push: - runs-on: ubuntu-latest - needs: build-check - steps: - - name: Checkout Repository - if: "!contains(github.event.head_commit.message, '/nodocker') && env.run_docker == 'true' && github.ref == 'refs/heads/devel'" - uses: actions/checkout@v3 - - - name: Register repo name - if: "!contains(github.event.head_commit.message, '/nodocker') && env.run_docker == 'true' && github.ref == 'refs/heads/devel'" - id: reg_repo_name - run: | - echo CONT_IMG_NAME=$(echo ${{ github.event.repository.name }} | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV - - - name: Set up QEMU - if: "!contains(github.event.head_commit.message, '/nodocker') && env.run_docker == 'true' && github.ref == 'refs/heads/devel'" - uses: docker/setup-qemu-action@v2 - - - name: Set up Docker Buildx - if: "!contains(github.event.head_commit.message, '/nodocker') && env.run_docker == 'true' && github.ref == 'refs/heads/devel'" - uses: docker/setup-buildx-action@v2 - - - name: Login to Docker Hub - if: "!contains(github.event.head_commit.message, '/nodocker') && env.run_docker == 'true' && github.ref == 'refs/heads/devel'" - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - ## Note that DOCKERHUB_TOKEN is really a token for your dockerhub - ## account, not your actual dockerhub account password. You can get it - ## from https://hub.docker.com/settings/security. - ## Check https://github.com/docker/build-push-action/tree/v4.0.0 - ## for more details. - ## Alternatively, try checking - ## https://seandavi.github.io/BuildABiocWorkshop/articles/HOWTO_BUILD_WORKSHOP.html. - - - name: Build and Push Docker - if: "!contains(github.event.head_commit.message, '/nodocker') && env.run_docker == 'true' && github.ref == 'refs/heads/devel' && success()" - uses: docker/build-push-action@v4 - with: - context: . - push: true - tags: > - ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.CONT_IMG_NAME }}:latest, - ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.CONT_IMG_NAME }}:devel From 01a1e76a578f14a359452fd1103e4b891aae89cc Mon Sep 17 00:00:00 2001 From: Hugo Gruson Date: Wed, 20 May 2026 13:04:53 +0200 Subject: [PATCH 4/5] Remove R CMD check workflow --- .github/workflows/R-CMD-check.yaml | 50 ------------------------------ 1 file changed, 50 deletions(-) delete mode 100644 .github/workflows/R-CMD-check.yaml diff --git a/.github/workflows/R-CMD-check.yaml b/.github/workflows/R-CMD-check.yaml deleted file mode 100644 index 13c2168..0000000 --- a/.github/workflows/R-CMD-check.yaml +++ /dev/null @@ -1,50 +0,0 @@ -# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples -# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help -on: - push: - branches: [main, devel] - pull_request: - -name: R-CMD-check.yaml - -permissions: read-all - -jobs: - R-CMD-check: - runs-on: ${{ matrix.config.os }} - - name: ${{ matrix.config.os }} (${{ matrix.config.r }}) - - strategy: - fail-fast: false - matrix: - config: - - {os: macos-latest, r: 'release'} - - {os: windows-latest, r: 'release'} - - {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'} - - {os: ubuntu-latest, r: 'release'} - - env: - GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} - R_KEEP_PKG_SOURCE: yes - - steps: - - uses: actions/checkout@v6 - - - uses: r-lib/actions/setup-pandoc@v2 - - - uses: r-lib/actions/setup-r@v2 - with: - r-version: ${{ matrix.config.r }} - http-user-agent: ${{ matrix.config.http-user-agent }} - - - uses: r-lib/actions/setup-r-dependencies@v2 - with: - extra-packages: any::rcmdcheck - needs: check - - - uses: r-lib/actions/check-r-package@v2 - with: - upload-snapshots: true - build_args: 'c("--no-manual","--compact-vignettes=gs+qpdf")' - error-on: '"error"' From f565db1b7dd348d0df34f329ddfd2cea800f1324 Mon Sep 17 00:00:00 2001 From: Hugo Gruson Date: Wed, 20 May 2026 13:40:51 +0200 Subject: [PATCH 5/5] Try to get r-universe to run bioccheck --- .github/workflows/r-universe.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/r-universe.yaml b/.github/workflows/r-universe.yaml index bdf08a8..67da258 100644 --- a/.github/workflows/r-universe.yaml +++ b/.github/workflows/r-universe.yaml @@ -10,4 +10,4 @@ jobs: uses: r-universe-org/workflows/.github/workflows/build.yml@v3 with: universe: bioc - organization: bioc \ No newline at end of file + organization: bioconductor \ No newline at end of file