test prod workflow #3
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
# This workflow uses actions that are not certified by GitHub. | |
# They are provided by a third-party and are governed by | |
# separate terms of service, privacy policy, and support | |
# documentation. | |
# | |
# See https://github.com/r-lib/actions/tree/master/examples#readme for | |
# additional example workflows available for the R community. | |
name: Master Workflow - Deploy to production | |
on: | |
pull_request: | |
types: closed | |
branches: [ "main" ] | |
permissions: | |
contents: read | |
jobs: | |
R-CMD-check: | |
env: | |
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
runs-on: ${{ matrix.config.os }} | |
name: ${{ matrix.config.os }} (${{ matrix.config.r }}) | |
strategy: | |
fail-fast: false | |
matrix: | |
config: # matrix of system runners to run workflow on | |
- {os: macOS-latest, r: 'release'} | |
- {os: windows-latest, r: 'release'} | |
# - {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'} | |
- {os: ubuntu-latest, r: 'release'} | |
- {os: ubuntu-latest, r: 'oldrel-1'} | |
steps: | |
- name: Remove vignettes dir | |
run: rm -rf 'vignettes/' | |
shell: bash | |
- name: Checkout repo for workflow access | |
uses: actions/checkout@v3 | |
- name: Set up R environment | |
uses: r-lib/actions/setup-r@v2 | |
with: | |
r-version: ${{ matrix.config.r }} | |
http-user-agent: ${{ matrix.config.http-user-agent }} | |
use-public-rspm: true | |
- name: Set up dependencies (general) | |
uses: r-lib/actions/setup-r-dependencies@v2 | |
env: | |
_R_CHECK_FORCE_SUGGESTS: false | |
_R_CHECK_RD_XREFS: false | |
with: | |
dependencies: '"hard"' # do not use suggested dependencies | |
extra-packages: any::rcmdcheck, any::testthat, any::rlang, any::R.utils, any::remotes, any::covr | |
- name: Set up dependencies (GiottoData) | |
run: | | |
suppressWarnings({ | |
remotes::install_github('drieslab/GiottoData@suite_modular', build = FALSE) | |
}) | |
shell: Rscript {0} | |
- name: Test python env build | |
run: | | |
if (!GiottoClass::checkGiottoEnvironment()) { | |
GiottoClass::installGiottoEnvironment() | |
} | |
shell: Rscript {0} | |
- name: Run R CMD check | |
uses: r-lib/actions/check-r-package@v2 | |
with: | |
upload-snapshots: true | |
error-on: '"error"' # workflow errors on error only, can change to include warnings | |
# show testthat output for ease of access | |
- name: Show testthat output | |
if: always() | |
run: find check -name 'testthat.Rout*' -exec cat '{}' \; || true | |
shell: bash | |
test-coverage: | |
name: Code coverage | |
runs-on: ubuntu-latest | |
env: | |
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
steps: | |
- name: Checkout repo for workflow access | |
uses: actions/checkout@v3 | |
- name: Set up R environment | |
uses: r-lib/actions/setup-r@v2 | |
with: | |
use-public-rspm: true | |
- name: Set up dependencies (general) | |
uses: r-lib/actions/setup-r-dependencies@v2 | |
env: | |
_R_CHECK_FORCE_SUGGESTS: false | |
_R_CHECK_RD_XREFS: false | |
with: | |
dependencies: '"hard"' # do not use suggested dependencies | |
extra-packages: any::rcmdcheck, any::testthat, any::rlang, any::R.utils, any::remotes, any::covr, any::xml2 | |
needs: coverage | |
- name: Set up dependencies (GiottoData) | |
run: | | |
suppressWarnings({ | |
remotes::install_github('drieslab/GiottoData@suite_modular', build = FALSE) | |
}) | |
shell: Rscript {0} | |
- name: Test coverage | |
run: | | |
covr::codecov( | |
quiet = FALSE, | |
clean = FALSE, | |
install_path = file.path(Sys.getenv("RUNNER_TEMP"), "package") | |
) | |
shell: Rscript {0} | |
- name: Upload coverage reports to Codecov | |
uses: codecov/codecov-action@v3 | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
# lint: | |
# runs-on: ubuntu-latest | |
# needs: R-CMD-check | |
# env: | |
# GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
# steps: | |
# - uses: actions/checkout@v3 | |
# | |
# - uses: r-lib/actions/setup-r@v2 | |
# with: | |
# use-public-rspm: true | |
# | |
# - uses: r-lib/actions/setup-r-dependencies@v2 | |
# with: | |
# extra-packages: any::lintr, local::. | |
# needs: lint | |
# | |
# - name: Lint | |
# run: lintr::lint_package() | |
# shell: Rscript {0} | |
# env: | |
# LINTR_ERROR_ON_LINT: true | |
# render-rmarkdown: | |
# name: Update README.Rmd | |
# runs-on: ubuntu-latest | |
# steps: | |
# - name: Checkout repo | |
# uses: actions/checkout@v3 | |
# with: | |
# fetch-depth: 0 | |
# | |
# - uses: r-lib/actions/setup-pandoc@v2 | |
# | |
# - uses: r-lib/actions/setup-r@v2 | |
# | |
# - uses: r-lib/actions/setup-renv@v2 | |
# | |
# - name: Install rmarkdown | |
# run: Rscript -e 'install.packages("rmarkdown")' | |
# | |
# - name: Render README | |
# run: Rscript -e 'rmarkdown::render("README.Rmd")' | |
# | |
# - name: Commit results | |
# run: | | |
# git commit README.md -m 'Re-build README.Rmd' || echo "No changes to commit" | |
# git push origin || echo "No changes to commit" | |