#124 #932
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## 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: | |
- master | |
pull_request: | |
branches: | |
- master | |
name: build-book-release | |
## 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: 'false' | |
run_covr: 'false' | |
run_pkgdown: 'false' | |
has_RUnit: 'false' | |
cache-version: 'cache-v1' | |
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.3', cont: "bioconductor/bioconductor_docker:RELEASE_3_17", rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest" } | |
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 | |
- name: Checkout Repository | |
uses: actions/checkout@v2 | |
- name: Query dependencies | |
run: | | |
install.packages('remotes') | |
saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2) | |
shell: Rscript {0} | |
- name: Cache R packages | |
if: "!contains(github.event.head_commit.message, '/nocache') && runner.os != 'Linux'" | |
uses: actions/cache@v1 | |
with: | |
path: ${{ env.R_LIBS_USER }} | |
key: ${{ env.cache-version }}-${{ runner.os }}-biocversion-RELEASE_3_17-r-4.3-${{ hashFiles('.github/depends.Rds') }} | |
restore-keys: ${{ env.cache-version }}-${{ runner.os }}-biocversion-RELEASE_3_17-r-4.3- | |
- name: Install BiocManager | |
run: | | |
message(paste('****', Sys.time(), 'installing BiocManager ****')) | |
remotes::install_cran("BiocManager") | |
shell: Rscript {0} | |
- name: Set BiocVersion | |
run: | | |
BiocManager::install(version = "3.17", ask = FALSE) | |
shell: Rscript {0} | |
- name: Cache R packages on Linux | |
if: "!contains(github.event.head_commit.message, '/nocache') && runner.os == 'Linux' " | |
uses: actions/cache@v1 | |
with: | |
path: /home/runner/work/_temp/Library | |
key: ${{ env.cache-version }}-${{ runner.os }}-biocversion-RELEASE_3_17-r-4.3-${{ hashFiles('.github/depends.Rds') }} | |
restore-keys: ${{ env.cache-version }}-${{ runner.os }}-biocversion-RELEASE_3_17-r-4.3- | |
- name: Install Linux 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 install -y libcurl4-openssl-dev libglpk-dev | |
- name: Install bookdown | |
if: github.ref == 'refs/heads/master' && runner.os == 'Linux' | |
run: | | |
remotes::install_cran("bookdown") | |
shell: Rscript {0} | |
- name: Install dependencies | |
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. | |
BiocManager::install("LTLA/bluster") | |
## 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, force=TRUE) | |
## 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: Session info | |
run: | | |
options(width = 100) | |
pkgs <- installed.packages()[, "Package"] | |
sessioninfo::session_info(pkgs, include_base = TRUE) | |
shell: Rscript {0} | |
- name: Bookdown Deploy Preparation | |
if: github.ref == 'refs/heads/master' && runner.os == 'Linux' | |
run: | | |
git config --global user.email "[email protected]" | |
git config --global user.name "GitHub Action" | |
git config --global --add safe.directory /__w/OMA/OMA | |
git fetch --all | |
commit=$(git --work-tree=../ rev-parse --verify --short HEAD) | |
git worktree add --track -B gh-pages docs origin/gh-pages | |
- name: Bookdown | |
if: runner.os == 'Linux' | |
run: | | |
Rscript -e 'bookdown::render_book("index.Rmd", "bookdown::gitbook")' | |
- uses: r-lib/actions/setup-tinytex@v2 | |
- name: Bookdown pdf | |
if: runner.os == 'Linux' | |
run: | | |
Rscript -e 'tinytex::reinstall_tinytex()' | |
Rscript -e 'install.packages("webshot")' | |
Rscript -e 'webshot::install_phantomjs()' | |
Rscript -e 'bookdown::render_book("index.Rmd", "bookdown::pdf_book")' | |
- name: Bookdown Deploy | |
if: github.ref == 'refs/heads/master' && runner.os == 'Linux' | |
run: | | |
cd docs | |
git add -A . | |
git commit --allow-empty -m "Build book @$(git rev-parse --short HEAD)" | |
git push --force origin HEAD:gh-pages | |
cd .. | |
- name: Upload check results | |
if: runner.os == 'Linux' && failure() | |
uses: actions/upload-artifact@master | |
with: | |
name: ${{ runner.os }}-biocversion-RELEASE_3_17-r-4.3-results | |
path: docs |