Update README.md #217
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 derived from https://github.com/r-lib/actions/tree/v2/examples | |
name: R-CMD-check | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
jobs: | |
R-CMD-check: | |
runs-on: ${{ matrix.config.os }} | |
name: ${{ matrix.config.os }} (${{ matrix.config.r }}) | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- {os: windows-latest, r: 'release'} | |
- {os: macOS-latest, r: 'release'} | |
- {os: ubuntu-20.04, r: 'release', rspm: "https://packagemanager.posit.co/cran/__linux__/focal/latest"} | |
- {os: ubuntu-20.04, r: 'devel', rspm: "https://packagemanager.posit.co/cran/__linux__/focal/latest"} | |
env: | |
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true | |
RSPM: ${{ matrix.config.rspm }} | |
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
R_KEEP_PKG_SOURCE: yes | |
DISPLAY: :99 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Chocolatey for windows | |
if: runner.os == 'Windows' | |
run: | | |
# Install Ghostscript & qpdf | |
choco install ghostscript qpdf --source=https://chocolatey.org/api/v2/ | |
choco install rtools | |
- name: Set up R | |
uses: r-lib/actions/setup-r@v2 | |
with: | |
r-version: ${{ matrix.config.r }} | |
- name: Clean Up Previous Check Directories | |
if: runner.os != 'Windows' | |
run: | | |
find ${{ github.workspace }} -type d -name '.Rcheck' -exec rm -rf {} + | |
working-directory: ${{ github.workspace }} | |
- name: Install X11 dependencies on MacOS | |
if: runner.os == 'macOS' | |
run: | | |
brew install --cask xquartz | |
- name: Install imagemagick on MacOS | |
if: runner.os == 'macOS' | |
run: | | |
brew install imagemagick | |
R -e "install.packages(c('imager', 'imagerExtra', 'igraph', dependencies=TRUE))" | |
- name: Install pandoc on MacOS | |
if: runner.os == 'macOS' | |
run: | | |
brew install pandoc | |
- name: Install Packages on Linux | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt install ghostscript | |
sudo apt install gsfonts | |
sudo apt install libmagick++-dev | |
sudo apt install libcurl4-openssl-dev | |
sudo apt-get install -y pandoc | |
R -e "install.packages(c('imager', 'magick', 'foreach', 'rcmdcheck', dependencies=TRUE))" | |
- 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: Install Pandoc for windows | |
if: runner.os == 'Windows' | |
run: | | |
# Download and install Pandoc | |
choco install pandoc | |
- 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 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, type = "source") | |
remotes::install_cran("rcmdcheck") | |
shell: Rscript {0} | |
- name: Use xvfb on Linux and MacOS | |
if: runner.os != 'Windows' | |
run: | | |
Xvfb :99 & | |
export DISPLAY=:99 | |
- 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: Upload check results | |
if: failure() | |
uses: actions/upload-artifact@main | |
with: | |
name: ${{ runner.os }}-r${{ matrix.config.r }}-results | |
path: check | |
# - name: Debug Workspace Content | |
# run: ls -R ${{ github.workspace }} | |
# - name: Set up R dependencies | |
# uses: r-lib/actions/setup-r-dependencies@v2 | |
# with: | |
# extra-packages: any::rcmdcheck | |
# needs: check | |
# - name: Install virtual display for tk | |
# run: sudo apt-get install xvfb | |
# - name: Run R CMD check | |
# run: xvfb-run R CMD check --no-manual . |