Incorporating the latest round of API changes #65
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
# For help debugging build failures open an issue on the RStudio community with the 'github-actions' tag. | |
# https://community.rstudio.com/new-topic?category=Package%20development&tags=github-actions | |
# Details on pull_request_target and why it's insecure: | |
# https://securitylab.github.com/resources/github-actions-preventing-pwn-requests/ | |
# Post describing a workaround, from which we take inspiration: | |
# https://michaelheap.com/access-secrets-from-forks/ | |
name: R-CMD-check | |
on: | |
push: | |
branches: | |
- master | |
- 'feature/**' | |
- 'bugfix/**' | |
pull_request_target: | |
types: [opened, synchronize] | |
jobs: | |
pre-check: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Confirm crew102 triggered the build | |
run: | | |
if [ "${{ github.actor }}" == "crew102" ]; then | |
echo "Actor is crew102" | |
else | |
echo "Actor is ${{ github.actor }}, failing build." | |
exit 1 | |
fi | |
R-CMD-check: | |
needs: [pre-check] | |
runs-on: ${{ matrix.config.os }} | |
name: ${{ matrix.config.os }} (${{ matrix.config.r }}) | |
strategy: | |
# Run sequentially so that we don't run into rate limit errors that our | |
# code would normally work around via retry logic | |
max-parallel: 1 | |
fail-fast: false | |
matrix: | |
config: | |
- {os: windows-latest, r: 'release'} | |
- {os: macOS-latest, r: 'release'} | |
- {os: ubuntu-20.04, r: 'release', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest"} | |
# - {os: ubuntu-20.04, r: 'devel', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest"} | |
env: | |
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true | |
RSPM: ${{ matrix.config.rspm }} | |
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
PATENTSVIEW_API_KEY: ${{ secrets.PATENTSVIEW_API_KEY }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
with: | |
# Use the head SHA for pull requests | |
ref: ${{ github.event.pull_request.head.sha || github.sha }} | |
- uses: r-lib/actions/setup-r@v1 | |
with: | |
r-version: ${{ matrix.config.r }} | |
- uses: r-lib/actions/setup-pandoc@v1 | |
- name: Query dependencies | |
run: | | |
install.packages('remotes') | |
saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2) | |
writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version") | |
shell: Rscript {0} | |
- name: Restore R package cache | |
if: runner.os != 'Windows' | |
uses: actions/cache@v2 | |
with: | |
path: ${{ env.R_LIBS_USER }} | |
key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }} | |
restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1- | |
- name: Install system dependencies | |
if: runner.os == 'Linux' | |
run: | | |
while read -r cmd | |
do | |
eval sudo $cmd | |
done < <(Rscript -e 'writeLines(remotes::system_requirements("ubuntu", "20.04"))') | |
- name: Install dependencies | |
run: | | |
remotes::install_deps(dependencies = TRUE) | |
remotes::install_cran("rcmdcheck") | |
remotes::install_cran("covr") | |
shell: Rscript {0} | |
- name: Check | |
env: | |
_R_CHECK_CRAN_INCOMING_REMOTE_: false | |
run: | | |
options(crayon.enabled = TRUE) | |
rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran"), error_on = "warning", check_dir = "check") | |
shell: Rscript {0} | |
- name: Run examples | |
env: | |
_R_CHECK_CRAN_INCOMING_REMOTE_: false | |
run: | | |
options(crayon.enabled = TRUE) | |
remotes::install_cran("devtools") | |
devtools::run_examples(run_dontrun = TRUE) | |
shell: Rscript {0} | |
- name: Upload check results | |
if: failure() | |
uses: actions/upload-artifact@main | |
with: | |
name: ${{ runner.os }}-r${{ matrix.config.r }}-results | |
path: check |