GA: modernize #24
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
on: [push, pull_request] | |
name: R-CMD-check | |
jobs: | |
R-CMD-check: | |
if: "! contains(github.event.head_commit.message, '[ci skip]')" | |
timeout-minutes: 30 | |
runs-on: ${{ matrix.config.os }} | |
name: ${{ matrix.config.os }} (${{ matrix.config.r }}) ${{ matrix.config.label }} | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- {os: windows-latest, r: 'release' } | |
# - {os: macOS-latest, r: 'devel' } | |
# - {os: macOS-latest, r: 'release' } | |
- {os: ubuntu-latest, r: 'devel' } | |
- {os: ubuntu-latest, r: 'release' } | |
- {os: ubuntu-latest, r: 'oldrel' } | |
- {os: ubuntu-latest, r: 'oldrel-1' } | |
env: | |
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
RSPM: https://packagemanager.rstudio.com/cran/__linux__/jammy/latest | |
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true | |
## R CMD check | |
_R_CHECK_CRAN_INCOMING_: false | |
_R_CHECK_LENGTH_1_CONDITION_: true | |
_R_CHECK_LENGTH_1_LOGIC2_: true | |
_R_CHECK_MATRIX_DATA_: true | |
## Suggested 'HaarSeg' fail to install on macOS due to C99 errors | |
_R_CHECK_SUGGESTS_ONLY_: ${{ matrix.config.os != 'macOS-latest' }} | |
_R_CHECK_FORCE_SUGGESTS_: ${{ matrix.config.os != 'macOS-latest' }} | |
## Specific to futures | |
R_FUTURE_RNG_ONMISUSE: error | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: r-lib/actions/setup-pandoc@v2 | |
- uses: r-lib/actions/setup-tinytex@v2 | |
- run: tlmgr --version | |
- uses: r-lib/actions/setup-r@v2 | |
with: | |
r-version: ${{ matrix.config.r }} | |
- name: Query R package 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@v4 | |
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 R package system dependencies (Linux) | |
if: runner.os == 'Linux' | |
env: | |
RHUB_PLATFORM: linux-x86_64-ubuntu-gcc | |
run: | | |
Rscript -e "remotes::install_github('r-hub/sysreqs')" | |
sysreqs=$(Rscript -e "cat(sysreqs::sysreq_commands('DESCRIPTION'))") | |
sudo -s eval "$sysreqs" | |
sudo apt install -y libcurl4-openssl-dev | |
- name: Install R package system dependencies (macOS) | |
if: runner.os == 'macOS' | |
run: | | |
brew install cairo | |
brew install xquartz | |
brew install fftw | |
- name: Install R package dependencies | |
env: | |
RHUB_PLATFORM: linux-x86_64-ubuntu-gcc | |
run: | | |
remotes::install_deps(dependencies = TRUE) | |
install.packages(c("sfit", "expectile", "HaarSeg"), repos = "https://henrikbengtsson.r-universe.dev") | |
install.packages("mpcbs", repos = c("https://r-forge.r-project.org", getOption("repos"))) | |
shell: Rscript {0} | |
- name: Install 'rcmdcheck' | |
run: | | |
remotes::install_cran("rcmdcheck") | |
library(rcmdcheck) ## triggers an error, if installation failed | |
shell: Rscript {0} | |
- name: Session info | |
run: | | |
options(width = 100) | |
capabilities() | |
pkgs <- installed.packages()[, "Package"] | |
sessioninfo::session_info(pkgs, include_base = TRUE) | |
shell: Rscript {0} | |
- name: Check | |
run: | |
rcmdcheck::rcmdcheck(args = c("--no-manual", "--as-cran", if (.Platform$OS.type == "windows" && getRversion() >= "4.2.0") "--no-multiarch"), error_on = "warning", check_dir = "check") | |
shell: Rscript {0} | |
- name: Upload check results | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ runner.os }}-r${{ matrix.config.r }}-results | |
path: check |