Skip to contents

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.


  path = file.path(".github", "workflows", "targets.yaml"),
  ask = NULL



Character of length 1, file path to write the GitHub Actions workflow file.


Logical, whether to ask before writing if the workflow file already exists. If NULL, defaults to Sys.getenv("TAR_ASK"). (Set to "true" or "false" with Sys.setenv()). If ask and the TAR_ASK environment variable are both indeterminate, defaults to interactive().


Nothing (invisibly). This function writes a GitHub Actions workflow file as a side effect.


Steps to set up continuous deployment:

  1. 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")).

  2. Ensure Actions are enabled in your GitHub repository. You may have to visit the Settings tab.

  3. Call targets::tar_renv(extras = character(0)) to expose hidden package dependencies.

  4. Set up renv for your project (with renv::init() or renv::snapshot()). Details at

  5. Commit the renv.lock file to the main (recommended) or master Git branch.

  6. Run tar_github_actions() to create the workflow file. Commit this file to main (recommended) or master in Git.

  7. 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