Github actions with R
2021-04-09
Chapter 1 Introduction
1.1 What are GitHub Actions?
GitHub actions allow us to trigger automated steps after we launch GitHub interactions such as when we push, pull, submit a pull request, or write an issue.
For example, there are actions that will automatically trigger:
- continuous integration (CI)
- messages in response to issues or pull requests
- rendering/compiling e.g. of rmarkdown, bookdown, blogdowns etc
GitHub actions follow the steps designated in a yaml
file, which we place in the .github/workflows
folder of the repo.
We can add these yaml
files to our repo either by clicking on a series of steps on GitHub.com, or using wrapper functions provided by the usethis
package, depending on which actions you wish to include.
We describe both ways here.
1.1.1 Usethis Wrappers
Jim Hester is working to add GitHub action functionalities to the development version of the usethis
package.
To use these functions now, you’ll need to install the development version, as follows:
Two specific GitHub actions related to continuous integration can be implemented with either of the following:
More details are in chapter 2.
There are a range of other R actions available in the r-lib library.
You can add these example yaml
files using the following function (demonstrated here with the check-release action):
1.1.2 Marketplace Actions
There are a huge selection of other actions that you can choose from in the Marketplace that automate not only GitHub processes but also programming-language-specific options. To implement these, go to any repo you own and you will find “Actions” on the top menu. Click on “New Workflow” and pick one from the templates provided.
In some cases the yaml
will need to be modified. More detail on understanding the yaml
files can be found in chapter 4.
1.2 Extensions
We experimented with setting up continuous integration with a reproducible environment using renv
in chapter 5.
1.3 More information and useful links
- R-specific GitHub actions examples from r-lib
use_github_action
function and similar functions help documentation- Glossary of actions
- Workflow syntax for GitHub Actions
:tada: Now you know what GitHub actions are and where to find more information about them!
Note: the r-lib/ghactions repo is deprecated!