Skip to content

check

check #914

Workflow file for this run

on:
push:
branches: [master, devel]
pull_request:
branches: [master, devel]
schedule:
- cron: '33 4 * * *' # work 4:33 in the morning
name: check
env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
WARNINGS_ARE_ERRORS: 1
_R_CHECK_CRAN_INCOMING_REMOTE_: false
_R_CHECK_TESTS_NLINES_: 0 # disable limiting of output lines
_R_CHECK_CRAN_INCOMING_: false
jobs:
check:
defaults:
run:
shell: bash
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false # continue runs even when a parallel run failed
matrix:
# run on ubuntu, macos, windows. 20.04 is more recent than ubuntu-latest, currently.
os: [macos-latest, windows-latest, ubuntu-latest]
action: [check]
r: [release]
include:
# additionally run r-devel, but only on ubuntu, and an old R version on an old ubuntu
- os: ubuntu-latest
action: check
r: devel
- os: ubuntu-20.04
action: check
r: '4.1'
- os: ubuntu-latest
action: coverage
r: release
- os: ubuntu-latest
action: githubversions
r: release
steps:
- uses: actions/checkout@v4
- uses: r-lib/actions/setup-r@v2
id: install-r
with:
r-version: ${{ matrix.r }}
- if: runner.os == 'Linux'
name: apt-get update
run: sudo apt-get update
- name: Install curl for Ubuntu
# necessary for pkgdown & covr, so we do that on ubuntu-latest / R release only
if: ${{ matrix.r == 'release' && matrix.os == 'ubuntu-latest' }}
run: sudo apt-get install libcurl4-openssl-dev libharfbuzz-dev libfribidi-dev
- uses: r-lib/actions/setup-pandoc@v2
- uses: r-lib/actions/setup-tinytex@v2-branch
- name: Create Cache Key
shell: Rscript {0}
run: |
if (!require("remotes", quietly = TRUE)) install.packages("remotes")
writeLines(capture.output(print(remotes::dev_package_deps())), ".github/deps.txt")
- uses: actions/cache@v4
with:
path: ${{ env.R_LIBS_USER }}
key: ${{ matrix.os }}-${{ steps.install-r.outputs.installed-r-version }}-${{ hashFiles('.github/deps.txt') }}
- shell: Rscript {0}
name: install necessary build env packages
run: for (req in c("remotes", "roxygen2", "covr", "pkgdown")) if (!require(req, quietly = TRUE)) install.packages(req)
- if: runner.os == 'Linux'
name: install system requirements
run: |
while read -r depinst ; do
echo "> $depinst"
eval sudo $depinst
done < <( Rscript -e "writeLines(remotes::system_requirements('ubuntu', '$( . /etc/os-release ; echo $VERSION_ID )'))")
- shell: Rscript {0}
name: install package dependencies
run: |
remotes::install_deps(dependencies = TRUE)
- name: install github versions
if: ${{ matrix.action == 'githubversions' }}
shell: Rscript {0}
run: |
system("sudo apt-get install libhiredis-dev")
remotes::install_github("mlr-org/paradox")
remotes::install_github("mlr-org/bbotk")
remotes::install_github("mlr-org/mlr3tuning")
- name: Session Info
shell: Rscript {0}
run: |
options(width = 200)
installed.packages()[, c("Package", "Version", "Built")]
sessionInfo()
- name: Document
shell: Rscript {0}
run: |
roxygen2::roxygenise()
system("attic/clean_man.sh")
- if: runner.os == 'windows'
name: Remove hypertarget from Latex for Windows
run: "sed -i 's/\\\\hypertarget{[^}]*}//g' man/*"
- if: runner.os == 'windows'
name: Install tinytex packages
shell: Rscript {0}
run: |
library(tinytex)
tlmgr_version()
tlmgr_update()
tlmgr_install('collection-latexrecommended')
tlmgr_install('collection-fontsrecommended')
tlmgr(c('list', '--only-installed'))
- name: Build
if: ${{ matrix.action != 'coverage' }}
working-directory: ..
run: 'R CMD build */'
- name: Check
if: ${{ matrix.action != 'coverage' }}
working-directory: ..
run: 'R CMD check --as-cran --run-donttest *.tar.gz'
- name: Coverage
if: ${{ matrix.action == 'coverage' }}
shell: Rscript {0}
run: covr::codecov(quiet = FALSE, type = "tests")
- name: install
if: ${{ matrix.action != 'coverage' && matrix.os == 'ubuntu-20.04' && matrix.r == 'release' }}
working-directory: ..
run: 'R CMD INSTALL *.tar.gz'
- name: Build Docs
if: ${{ matrix.action != 'coverage' && matrix.os == 'ubuntu-20.04' && matrix.r == 'release' }}
shell: Rscript {0}
run: |
pkgdown::build_site()
roxygen2::roxygenise()
tools::buildVignettes(dir = ".")
- name: Deploy Docs
if: ${{ matrix.action != 'coverage' && matrix.os == 'ubuntu-20.04' && matrix.r == 'release' && github.ref == 'refs/heads/master' }}
run: |
git config --local user.name "github-actions[bot]"
git config --local user.email "mb706@users.noreply.github.com"
git checkout --orphan gh-pages
git --work-tree=docs add --all
git --work-tree=docs commit -m "gh-pages"
git push origin HEAD:gh-pages --force
- name: Install Log
if: ${{ failure() }}
working-directory: ..
run: 'cat *.Rcheck/00install.out'
- name: Check Log
if: ${{ failure() }}
working-directory: ..
run: 'cat *.Rcheck/00check.log'
- name: Latex Log
if: ${{ failure() }}
working-directory: ..
run: 'cat *.Rcheck/Rdlatex.log'