Legend (#7) #41
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
## Github Actions workflow to deploy pkgdown website to GitHub pages | |
## This workflow is triggered by pushes to the devel branch | |
## and is only run on Linux runners | |
on: | |
push: | |
branches: [main, devel] | |
pull_request: | |
branches: [main, devel] | |
name: Deploy pkgdown site | |
permissions: read-all | |
jobs: | |
pkgdown: | |
runs-on: ${{ matrix.config.os }} | |
name: ${{ matrix.config.os }} (${{ matrix.config.r }}) | |
container: ${{ matrix.config.cont }} | |
## Environment variables unique to this job. | |
permissions: | |
contents: write | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- { os: ubuntu-latest, r: '4.4', bioc: '3.19', cont: "bioconductor/bioconductor_docker:RELEASE_3_19", rspm: "https://packagemanager.rstudio.com/cran/__linux__/jammy/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 | |
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 | |
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 | |
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: 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-RELEASE_3_19-r-4.4-${{ hashFiles('.github/depends.Rds') }} | |
restore-keys: ${{ env.cache-version }}-${{ runner.os }}-biocversion-RELEASE_3_19-r-4.4- | |
- name: Install pkgdown | |
run: | | |
remotes::install_cran("pkgdown") | |
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: | | |
## For running the checks | |
message(paste('****', Sys.time(), 'installing rcmdcheck and BiocCheck ****')) | |
install.packages(c("rcmdcheck", "BiocCheck"), repos = BiocManager::repositories()) | |
## 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 = TRUE, upgrade = TRUE, force = TRUE) | |
shell: Rscript {0} | |
- name: Install package | |
run: R CMD INSTALL . | |
- name: Build pkgdown site | |
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 | |
run: | | |
apt-get update && apt-get -y install rsync | |
- name: Deploy pkgdown site to GitHub pages 🚀 | |
uses: JamesIves/github-pages-deploy-action@releases/v4 | |
with: | |
clean: false | |
branch: gh-pages | |
folder: docs |