Set up GitHub Actions to run a targets pipeline
Source:R/tar_github_actions.R
tar_github_actions.Rd
Writes a GitHub Actions workflow file so the pipeline
runs on every push to GitHub. Historical runs accumulate in the
targets-runs
branch, and the latest output is restored before
tar_make()
so up-to-date targets do not rerun.
Usage
tar_github_actions(
path = file.path(".github", "workflows", "targets.yaml"),
ask = NULL
)
Arguments
- path
Character of length 1, file path to write the GitHub Actions workflow file.
- ask
Logical, whether to ask before writing if the workflow file already exists. If
NULL
, defaults toSys.getenv("TAR_ASK")
. (Set to"true"
or"false"
withSys.setenv()
). Ifask
and theTAR_ASK
environment variable are both indeterminate, defaults tointeractive()
.
Details
Steps to set up continuous deployment:
Ensure your pipeline stays within the resource limitations of GitHub Actions and repositories, both for storage and compute. For storage, you may wish to reduce the burden with an alternative repository (e.g.
tar_target(..., repository = "aws")
).Ensure Actions are enabled in your GitHub repository. You may have to visit the Settings tab.
Call
targets::tar_renv(extras = character(0))
to expose hidden package dependencies.Set up
renv
for your project (withrenv::init()
orrenv::snapshot()
). Details at https://rstudio.github.io/renv/articles/ci.html.Commit the
renv.lock
file to themain
(recommended) ormaster
Git branch.Run
tar_github_actions()
to create the workflow file. Commit this file tomain
(recommended) ormaster
in Git.Push your project to GitHub. Verify that a GitHub Actions workflow runs and pushes results to
targets-runs
. Subsequent runs will only recompute the outdated targets.
See also
Other scripts:
tar_edit()
,
tar_helper()
,
tar_renv()
,
tar_script()
Examples
tar_github_actions(tempfile())