Skip to content


Repository files navigation

GitHub Actions for the R language

R build status RStudio community

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

  1. r-lib/actions/setup-r - Sets up R
  2. r-lib/actions/setup-r-dependencies - Installs packages declared in DESCRIPTION
  3. r-lib/actions/setup-renv - Installs packages from renv lockfile
  4. r-lib/actions/setup-pandoc - Sets up pandoc
  5. r-lib/actions/setup-tinytex - Sets up LaTeX with tinytex
  6. r-lib/actions/check-r-package - Runs R CMD check on an R package
  7. r-lib/actions/pr-fetch - Fetches changes of a PR associated with an event
  8. r-lib/actions/pr-push - Pushes changes to a PR associated with an event
  9. r-lib/actions/run-rchk - Runs rchk tests to detect memory protection errors in C source code

Other GitHub Actions for R projects

What's new?

See the v2 release notes. These notes are kept current with the changes in v2.


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.

  1. 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.
  2. 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
  3. Open an issue on RStudio community about your problem. Be sure to link to the workflow file you are using and a failing build to help others help you.
  4. If your issue seems related to GitHub Actions, but is not specific to R, open an issue at the GitHub Actions Community page.
  5. 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.
  6. 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

  1. 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
  2. Why are my Windows builds failing with an error about 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 the 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: text eol=lf

  3. How can I customize an action to run R code?

    The safest way is to add a step to your action, specifying Rscript {0} as the shell 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

License CC0 licensed

All examples in this repository are published with the CC0 license.