Skip to content

Commit

Permalink
adding some GHA for the checking and see how the whole thing builds (…
Browse files Browse the repository at this point in the history
…build & only build)
  • Loading branch information
federicomarini committed May 2, 2024
1 parent 0d15538 commit bb56c8e
Showing 1 changed file with 135 additions and 0 deletions.
135 changes: 135 additions & 0 deletions .github/workflows/rcmdcheck.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
on:
push:
pull_request:
branches:
- main
schedule:
- cron: '0 8 * * 5'

name: R-CMD-check

jobs:
R-CMD-check:
runs-on: ${{ matrix.config.os }}
container: ${{ matrix.config.image }}

name: ${{ matrix.config.os }} (${{ matrix.config.bioc }} - ${{ matrix.config.image }})

strategy:
fail-fast: false
matrix:
config:
- { os: windows-latest, bioc: 'devel'}
- { os: macOS-latest, bioc: 'devel', curlConfigPath: '/usr/bin/'}
- { os: ubuntu-latest, bioc: 'devel'}
# - { os: ubuntu-latest, bioc: 'devel', cran: "https://demo.rstudiopm.com/all/__linux__/xenial/latest"}
- { os: ubuntu-latest, image: 'bioconductor/bioconductor_docker:devel'}

env:
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
CRAN: ${{ matrix.config.cran }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
CURL_CONFIG: ${{ matrix.config.curlConfigPath }}curl-config

steps:
- name: Check out repo
uses: actions/checkout@v2

- name: Set up R and install BiocManager
uses: grimbough/bioc-actions/setup-bioc@v1
if: matrix.config.image == null
with:
bioc-version: ${{ matrix.config.bioc }}

- name: Set up pandoc
uses: r-lib/actions/setup-pandoc@v2
if: matrix.config.image == null

- name: Install remotes
run: |
install.packages('remotes')
shell: Rscript {0}

- name: Query dependencies
run: |
saveRDS(remotes::dev_package_deps(dependencies = TRUE, repos = c(getOption('repos'), BiocManager::repositories())), 'depends.Rds', version = 2)
shell: Rscript {0}

- name: Cache R packages
if: runner.os != 'Windows' && matrix.config.image == null
uses: actions/cache@v1
with:
path: ${{ env.R_LIBS_USER }}
key: ${{ runner.os }}-bioc-${{ matrix.config.bioc }}-${{ hashFiles('depends.Rds') }}
restore-keys: ${{ runner.os }}-bioc-${{ matrix.config.bioc }}-

- name: Install system dependencies
if: runner.os == 'Linux'
env:
RHUB_PLATFORM: linux-x86_64-ubuntu-gcc
run: |
Rscript -e "remotes::install_github('r-hub/sysreqs')"
sysreqs=$(Rscript -e "cat(sysreqs::sysreq_commands('DESCRIPTION'))")
sudo -s eval "$sysreqs"
sudo apt-get update && sudo apt-get -y install libcurl4-openssl-dev libglpk-dev libharfbuzz-dev libfribidi-dev
- name: Install system dependencies (macOS)
if: runner.os == 'macOS'
run: |
brew install cairo
brew install --cask xquartz
brew install harfbuzz
brew install fribidi
brew install fftw
- name: Install dependencies
run: |
local_deps <- remotes::local_package_deps(dependencies = TRUE)
deps <- remotes::dev_package_deps(dependencies = TRUE, repos = BiocManager::repositories())
BiocManager::install(local_deps[local_deps %in% deps$package[deps$diff != 0]], Ncpu = 2L)
BiocManager::install(c("GenomeInfoDbData", "GO.db"), Ncpu = 2L)
remotes::install_github("krassowski/complex-upset")
remotes::install_cran('rcmdcheck', Ncpu = 2L)
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: Build, Install, Check
uses: grimbough/bioc-actions/build-install-check@v1

# - name: Run BiocCheck
# uses: grimbough/bioc-actions/run-BiocCheck@v1
# with:
# arguments: '--no-check-bioc-views --no-check-bioc-help'
# error-on: 'error'

- name: Show testthat output
if: always()
run: find check -name 'testthat.Rout*' -exec cat '{}' \; || true
shell: bash

- name: Upload check results
if: failure()
uses: actions/upload-artifact@master
with:
name: ${{ runner.os }}-bioc-${{ matrix.config.bioc }}-results
path: check

# - name: Test coverage
# if: matrix.config.os == 'macOS-latest'
# run: |
# install.packages("covr")
# covr::codecov(token = "${{secrets.CODECOV_TOKEN}}")
# shell: Rscript {0}

- name: Deploy
if: github.event_name == 'push' && github.ref == 'refs/heads/devel' && matrix.config.os == 'macOS-latest'
run: |
R CMD INSTALL .
Rscript -e "remotes::install_dev('pkgdown'); pkgdown::deploy_to_branch(new_process = FALSE)"

0 comments on commit bb56c8e

Please sign in to comment.