Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 20 additions & 26 deletions .github/workflows/R-CMD-check.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Workflow derived from https://github.com/r-lib/actions/tree/v2/examples
# Need help debugging build failures? Start at https://github.com/r-lib/actions#where-to-find-help
# Workflow derived from https://eddelbuettel.github.io/r-ci/
# Uses r-ci + r2u for fast (binary) package installation. Both jobs run in
# containers that already bundle r2u (rocker/r2u4ci for release -- the
# CI-flavoured image recommended by r-ci, with curl etc. preinstalled -- and
# rocker/drd for devel, built FROM rocker/r2u), so neither pays the bare-runner
# r2u mirror-setup cost (which can stall if the upstream r2u mirror is down).
on:
push:
branches: [main, master]
Expand All @@ -9,41 +13,31 @@ on:
name: ci

jobs:
R-CMD-check:
runs-on: ${{ matrix.config.os }}
ci:
runs-on: ${{ matrix.os }}
container: ${{ matrix.container }}

name: ${{ matrix.config.os }} (${{ matrix.config.r }})
name: ${{ matrix.name }}

strategy:
fail-fast: false
matrix:
config:
# - {os: macos-latest, r: 'release'}
# - {os: windows-latest, r: 'release'}
- {os: ubuntu-latest, r: 'devel', http-user-agent: 'release'}
- {os: ubuntu-latest, r: 'release'}
# - {os: ubuntu-latest, r: 'oldrel-1'}
include:
- { name: r-release, os: ubuntu-latest, container: rocker/r2u4ci }
- { name: r-devel, os: ubuntu-latest, container: rocker/drd }

env:
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
R_KEEP_PKG_SOURCE: yes

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6

- uses: r-lib/actions/setup-pandoc@v2
- name: Setup
uses: eddelbuettel/github-actions/r-ci@master
Comment thread
grantmcdermott marked this conversation as resolved.

- uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ matrix.config.r }}
http-user-agent: ${{ matrix.config.http-user-agent }}
use-public-rspm: true
- name: Dependencies
run: ./run.sh install_all

- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: any::rcmdcheck
needs: check

- uses: r-lib/actions/check-r-package@v2
with:
upload-snapshots: true
- name: Test
run: ./run.sh run_tests
5 changes: 4 additions & 1 deletion .github/workflows/altdoc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ name: altdoc
jobs:
altdoc:
runs-on: ubuntu-latest
# Fail fast (and retryably) if the bare-runner r2u bootstrap stalls on a
# flaky upstream mirror, rather than burning a full-length run.
timeout-minutes: 20
# Only restrict concurrency for non-PR jobs
concurrency:
group: altdoc-${{ github.event_name != 'pull_request' || github.run_id }}
Expand All @@ -22,7 +25,7 @@ jobs:
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6

- uses: quarto-dev/quarto-actions/setup@v2

Expand Down
30 changes: 10 additions & 20 deletions .github/workflows/revdep.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,12 @@ name: revdep

jobs:
matrix:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
name: Collect revdeps
env:
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
RSPM: https://packagemanager.rstudio.com/cran/__linux__/bionic/latest
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
# prevent rgl issues because no X11 display is available
RGL_USE_NULL: true
Expand All @@ -24,7 +23,7 @@ jobs:
curl -s --header "authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/rate_limit
shell: bash

- uses: actions/checkout@v3
- uses: actions/checkout@v6

- id: set-matrix
run: |
Expand All @@ -40,7 +39,7 @@ jobs:
shell: Rscript {0}

check-matrix:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs: matrix
steps:
- name: Install json2yaml
Expand All @@ -56,14 +55,13 @@ jobs:

R-CMD-check:
needs: matrix
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
name: ${{ matrix.package }}
strategy:
fail-fast: false
matrix: ${{fromJson(needs.matrix.outputs.matrix)}}
env:
R_REMOTES_NO_ERRORS_FROM_WARNINGS: true
RSPM: https://packagemanager.rstudio.com/cran/__linux__/bionic/latest
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }}
# prevent rgl issues because no X11 display is available
RGL_USE_NULL: true
Expand All @@ -73,12 +71,12 @@ jobs:
curl -s --header "authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/rate_limit
shell: bash

- uses: actions/checkout@v3
- uses: actions/checkout@v6

- name: Use RSPM
run: |
mkdir -p /home/runner/work/_temp/Library
echo 'local({release <- system2("lsb_release", "-sc", stdout = TRUE); options(repos=c(CRAN = paste0("https://packagemanager.rstudio.com/all/__linux__/", release, "/latest")), HTTPUserAgent = sprintf("R/%s R (%s)", getRversion(), paste(getRversion(), R.version$platform, R.version$arch, R.version$os)))}); .libPaths("/home/runner/work/_temp/Library")' | sudo tee /etc/R/Rprofile.site
# r2u: installs CRAN packages as apt binaries and auto-resolves their
# system (OS) dependencies, so no manual system_requirements() step is
# needed. Replaces the old hand-written /etc/R/Rprofile.site mirror hack.
- uses: eddelbuettel/github-actions/r2u-setup@master
Comment thread
grantmcdermott marked this conversation as resolved.

- name: Install remotes
run: |
Expand All @@ -88,14 +86,6 @@ jobs:

- uses: r-lib/actions/setup-pandoc@v2

- name: Install system dependencies
if: runner.os == 'Linux'
run: |
sudo apt-get update -y
Rscript -e 'writeLines(remotes::system_requirements("ubuntu", "22.04")); package <- "${{ matrix.package }}"; deps <- tools::package_dependencies(package, which = "Suggests")[[1]]; lapply(c(package, deps), function(x) { writeLines(remotes::system_requirements("ubuntu", "22.04", package = x)) })' | sort | uniq > .github/deps.sh
cat .github/deps.sh
sudo sh < .github/deps.sh

- name: Install package
run: |
package <- "${{ matrix.package }}"
Expand Down Expand Up @@ -173,7 +163,7 @@ jobs:

- name: Upload check results
if: failure()
uses: actions/upload-artifact@main
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.package }}-results
path: revdep/${{ matrix.package }}
Expand Down