GitHub Actions for the R language
This repository stores GitHub Actions for R projects, which can be used to do a variety of CI tasks. It also has a number of example workflows which use these actions.
Getting started
See this blog post on the Tidyverse blog.
Releases and tags
We use major version tags to mark breaking changes in these actions.
For the current version, please use the v2
tag, e.g.:
- uses: r-lib/actions/setup-r@v2
The v2
tag occasionally changes, to introduce non-breaking fixes and
improvements. These changes use more fine-grained tags, e.g. v2.0.1
.
You can refer to these as well in your workflow files if you need to.
List of actions
- r-lib/actions/setup-r - Sets up R
- r-lib/actions/setup-r-dependencies - Installs packages declared in
DESCRIPTION
- r-lib/actions/setup-renv - Installs packages from renv lockfile
- r-lib/actions/setup-pandoc - Sets up pandoc
- r-lib/actions/setup-tinytex - Sets up LaTeX with tinytex
- r-lib/actions/check-r-package - Runs
R CMD check
on an R package - r-lib/actions/pr-fetch - Fetches changes of a PR associated with an event
- r-lib/actions/pr-push - Pushes changes to a PR associated with an event
- r-lib/actions/run-rchk - Runs rchk tests to detect memory protection errors in C source code
Other GitHub Actions for R projects
- quarto-dev/quarto-actions - Quarto related actions: install, render, publish
What's new?
See the v2
release notes.
These notes are kept current with the changes in v2
.
Examples
See the r-lib/actions/examples directory for a variety of example workflows using these actions.
Where to find help
If your build fails, and you are unsure of why, here are some useful strategies for getting help.
- Figure out what caused the error. Look for the first time the word 'error' appears in the build log. Quite often errors at the end of the log are caused by an earlier issue, so it is best to look for the root cause.
- Take advantage of GitHub's code search to find similar yaml files. Use 'path:.github/workflows' to restrict your search to GitHub Action workflow files and also include additional terms specific to your problem. e.g. If you need to figure out how to install geospatial libraries such as gdal, use a search like 'gdal path:.github/workflows'. If you want to restrict results only to GitHub Actions workflows that use R you can add search for '"setup-r" path:.github/workflows
- Open an issue on about your problem. Be sure to link to the workflow file you are using and a failing build to help others help you.
- If your issue seems related to GitHub Actions, but is not specific to R, open an issue at the GitHub Actions Community page.
- If you have done all of the above and are absolutely sure there is a bug in one of the R specific actions listed above, check if there is an open issue about it in this repo. Look at the pinned issues at the top first! We pin issues that affect many people, and the issue discussions often contain workarounds.
- Otherwise open a new issue in this repo.
If using a general search engine or GitHub search about your problem/idea, please note that content published prior to the Fall 2019 is probably outdated because the beta version of GitHub Actions was different. More recent posts or answers could be outdated too since GitHub Actions evolve, so refer to GitHub Actions official docs in case of doubt (and to existing working workflows) and GitHub changelog.
Common questions
-
Why are my builds with plots failing on macOS?
You need to install XQuartz to do plotting with the default quartz device on macOS. This can be done by adding the following to your workflow.- if: runner.os == 'macOS' run: brew install --cask xquartz
-
Why are my Windows builds failing with an error about
configure.ac
having CRLF line endings?
On Windows, when your repo is checked out using git, the line endings are automatically changed to CRLF. R's check process specifically checks if theconfigure.ac
file has these line endings, and will error if it does. To avoid this, add a.gitattributes
file to the top level of your package with the following to configure git to always use LF line endings for this file:
configure.ac text eol=lf
-
How can I customize an action to run R code?
The safest way is to add astep
to your action, specifyingRscript {0}
as theshell
for that step. Here's an example from the bookdown action:- name: Build site run: bookdown::render_book("index.Rmd", quiet = TRUE) shell: Rscript {0}
Additional resources
- GitHub Actions for R, Jim Hester's talk at rstudio::conf 2020. Recording, slidedeck.
- GitHub Actions advent calendar a series of blogposts by Edward Thomson, one of the GitHub Actions product managers highlighting features of GitHub Actions.
- GitHub Actions with R - a short online book about using GitHub Actions with R, produced as part of the rOpenSci OzUnconf.
- Awesome Actions - a curated list of custom actions. Note that many of these are from early in the GitHub Actions beta and may no longer work.
License
All examples in this repository are published with the CC0 license.