build #885
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
# Workflow based on https://github.com/r-lib/actions/tree/master/examples#standard-ci-workflow | |
name: build | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
schedule: | |
- cron: "0 9 * * 1,3,5" | |
workflow_dispatch: | |
jobs: | |
R-CMD-check: | |
runs-on: ${{ matrix.config.os }} | |
name: ${{ matrix.config.os }} (R ${{ matrix.config.r }}; mlr3 ${{ matrix.config.mlr3 }}; cran_no_glmnet ${{ matrix.config.cran_no_glmnet }}) | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- {os: windows-latest, r: 'release', mlr3: 'release', cran_no_glmnet: 'false'} | |
- {os: macOS-latest, r: 'release', mlr3: 'release', cran_no_glmnet: 'false'} | |
- {os: ubuntu-20.04, r: 'release', mlr3: 'release', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest", cran_no_glmnet: 'false'} | |
- {os: ubuntu-20.04, r: 'devel', mlr3: 'release', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest", cran_no_glmnet: 'false'} | |
- {os: ubuntu-20.04, r: 'devel', mlr3: 'release', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest", cran_no_glmnet: 'true'} | |
- {os: ubuntu-20.04, r: 'devel', mlr3: 'dev', rspm: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest", cran_no_glmnet: 'false'} | |
env: | |
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true | |
RSPM: ${{ matrix.config.rspm }} | |
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 2 | |
- uses: r-lib/actions/setup-r@v2 | |
with: | |
r-version: ${{ matrix.config.r }} | |
- 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) | |
writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version") | |
shell: Rscript {0} | |
- name: Cache R packages | |
if: runner.os != 'Windows' | |
uses: actions/cache@v3 | |
with: | |
path: ${{ env.R_LIBS_USER }} | |
key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-${{ matrix.config.mlr3 }}-1-${{ hashFiles('.github/depends.Rds') }} | |
restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-${{ matrix.config.mlr3 }}-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") | |
shell: Rscript {0} | |
- name: mlr3 dev version | |
if: matrix.config.mlr3 == 'dev' | |
run: | | |
remotes::install_github("mlr-org/mlr3") | |
shell: Rscript {0} | |
- name: Check | |
if: | | |
runner.os != 'macOS' && | |
matrix.config.cran_no_glmnet == 'false' | |
env: | |
_R_CHECK_CRAN_INCOMING_REMOTE_: false | |
NOT_CRAN: false | |
run: rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran"), error_on = "warning", check_dir = "check") | |
shell: Rscript {0} | |
- name: Check | |
if: matrix.config.cran_no_glmnet == 'true' | |
env: | |
_R_CHECK_CRAN_INCOMING_REMOTE_: false | |
_R_CHECK_FORCE_SUGGESTS_: false | |
NOT_CRAN: false | |
run: | | |
remove.packages("glmnet") | |
rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran", "--ignore-vignettes"), build_args = c("--no-build-vignettes"), error_on = "warning", check_dir = "check") | |
shell: Rscript {0} | |
- name: Check | |
if: | | |
runner.os == 'macOS' && | |
matrix.config.cran_no_glmnet == 'false' | |
env: | |
_R_CHECK_CRAN_INCOMING_REMOTE_: false | |
run: rcmdcheck::rcmdcheck(args = c("--no-manual"), error_on = "warning", check_dir = "check") | |
shell: Rscript {0} | |
- name: Upload check results | |
if: failure() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ runner.os }}-r${{ matrix.config.r }}-${{ matrix.config.mlr3 }}-results | |
path: check | |
- name: Install covr | |
if: runner.os == 'macOS' | |
run: | | |
remotes::install_cran("covr") | |
shell: Rscript {0} | |
- name: Test coverage | |
if: runner.os == 'macOS' | |
run: covr::codecov() | |
shell: Rscript {0} |