Containers for testing R packages on some popular Linux distributions using the native R installation for that distro. To run a container locally use:
docker run -it ghcr.io/r-devel/rocky-8
The containers are available for x86_64 and arm64, for the full list see: https://github.com/orgs/r-devel/packages?repo_name=containers
There are many other people maintaining containers with R installations for all kinds of purposes:
- r-hub/containers: extensive collection of R configurations for testing R with various compilers and instrumatation tools.
- r-hub/r-minimal: light weight R image based on alpine and musl libc.
- r-lib/rig: containers with R builds from Posit on various distros.
- r-rocker: images with various versions of R and preinstalled packages.
Use whatever works for you.
Below an example workflow to test an R package on GitHub Actions on multiple containers and architectures.
name: Linux Distros
on:
push:
pull_request:
jobs:
rhel:
runs-on: ubuntu-24.04${{matrix.arch=='arm64' && '-arm' || ''}}
name: ${{ matrix.distro }} ${{ matrix.arch }}
strategy:
fail-fast: false
matrix:
distro: [ 'rocky-8', 'rocky-9', 'fedora' ]
arch: [ 'amd64', 'arm64' ]
container:
image: ghcr.io/r-devel/${{ matrix.distro }}:latest
steps:
- uses: actions/checkout@v4
- uses: r-lib/actions/setup-r-dependencies@v2
with:
extra-packages: any::rcmdcheck
needs: check
- uses: r-lib/actions/check-r-package@v2
Adapt to your needs and copy the template into e.g. .github/workflows/distros.yml
in your R package repository on GitHub.