This action sets up an R environment for use in actions by:
- Downloading and caching a version of R by version and adding to PATH
- Registering problem matchers for error output
- Setting the following environment variables
NOT_CRAN=true
TZ=UTC
R_LIBS_USER=tempdir/Library
_R_CHECK_SYSTEM_CLOCK_=FALSE
- Removing the
-fopenmp
flags from Makeconf on macOS, which are not supported with Apple’s default Command Line Tools compilers. - Appending ‘on GitHub Actions’ to the default HTTP user agent. This is useful to distinguish GitHub Actions package requests from other sources.
- Supplying the installed R version as a
installed-r-version
output.
-
r-version (
'release'
) - Version range or exact version of an R version to use. “devel” is the current development version, and “next” is the next version of R, either R-patched, or R-alpha, R-beta, R-rc or R-prerelease. Use “renv” to retrieve R version recorded in renv.lock file. -
rtools-version (
''
) - Exact version of Rtools to use. Default uses latest suitable rtools for the given version of R. Set it to “42” for Rtools42. If it is ‘none’, then Rtools will not be installed. (Note that there is still a pre-installed version of Rtools on the GitHub-hoested GHA runners.) -
Ncpus (
'1'
) - Value to set the R optionNcpus
to. -
remove-openmp-macos (
true
) - If true, remove-fopenmp
from the default compilation flags, e.g.SHLIB_OPENMP_CFLAGS
, as the macOS Command Line Tools do not support OpenMP. -
http-user-agent (
'default'
) - If"default"
or""
, sets the HTTPUserAgent option to e.g. for R 3.6.3 running on macOS Catalina,"R/3.6.3 R (3.6.3 x86_64-apple-darwin17.0 x86_64 darwin17.0) on GitHub Actions"
. If"release"
sets the user agent to the default user agent for the current R release. Otherwise uses whatever value is passed tohttp-user-agent
. -
install-r (
true
) - If “true” download and install R during the setup. If “false” use the existing installation in the GitHub Action image. Note that if it is “false”, you probably need to runsudo apt-get update
yourself. -
windows-path-include-rtools (
true
) - Whether to add Rtools to the PATH. -
windows-path-include-mingw (
true
) - If “true” put the 64 bit mingw directory from Rtools on the PATH for Windows builds. This argument is now defunct on Rtools40 and later, which never add the mingw directory to the path. -
update-rtools (
false
) - Update rtools40 compilers and libraries to the latest builds. -
use-public-rspm (
false
) - Use the public version of Posit package manager available at https://packagemanager.posit.co/ to serve binaries for Linux and Windows. -
extra-repositories (
''
) - One or more extra CRAN-like repositories to include in therepos
global option -
working-directory (
'.'
) - Using the working-directory keyword, you can specify a subdirectory of the repo where some relevant file, such as “renv.lock”, should be found.
- installed-r-version - The full R version installed by the action
Basic:
steps:
- uses: actions/checkout@v4
- uses: r-lib/actions/setup-r@v2
with:
r-version: '3.5.3' # The R version to download (if necessary) and use.
# Use "renv" to retrieve R version recorded in renv.lock file.
- run: Rscript -e 'print("hello")'
Matrix Testing:
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
R: [ '3.5.3', '3.6.1' ]
name: R ${{ matrix.R }} sample
steps:
- uses: actions/checkout@v4
- name: Setup R
uses: r-lib/actions/setup-r@v2
with:
r-version: ${{ matrix.R }}
- run: Rscript -e 'print("hello")'
You can add an extra step to your workflow, after R was installed, and create the R profile. Here is an example:
- name: Add some R options for later steps
run: |
cat("\noptions(tinytex.verbose = TRUE)\n", file = "~/.Rprofile", append = TRUE)
shell: Rscript {0}
The scripts and documentation in this project are released under the MIT License
Contributions are welcome!