cr_buildstep_r: Run an R script in a Cloud Build R step

View source: R/buildsteps_templates.R

cr_buildstep_rR Documentation

Run an R script in a Cloud Build R step

Description

Helper to run R code within build steps, from either an existing local R file or within the source of the build.

Usage

cr_buildstep_r(
  r,
  name = "r-base",
  r_source = c("local", "runtime"),
  prefix = "rocker/",
  escape_dollar = TRUE,
  rscript_args = NULL,
  r_cmd = c("Rscript", "R"),
  ...
)

Arguments

r

R code to run or a file containing R code ending with .R, or the gs:// location on Cloud Storage of the R file you want to run

name

The docker image that will run the R code, usually from rocker-project.org

r_source

Whether the R code will be from a runtime file within the source or at build time copying over from a local R file in your session

prefix

prefixed to name - set to "" to suppress. Will be suppressed if name starts with gcr.io or *-docker.pkg.dev

escape_dollar

Default TRUE. This will turn $ into $$ within the script to avoid them being recognised as Cloud Build variables. Turn this off if you want that behaviour (e.g. my_project="$PROJECT_ID")

rscript_args

Optional arguments for the R script run by Rscript.

r_cmd

should 'Rscript' be run or 'R'?

...

Other arguments passed to cr_buildstep

Details

If r_source="runtime" then r should be the location of that file within the source or image that will be run by the R code from image

If r_source="local" then it will copy over from a character string or local file into the build step directly.

If the R code location starts with gs:// then an extra buildstep will be added that will download the R script from that location then run it as per r_source="runtime". This will consequently override your setting of r_source

See Also

Other Cloud Buildsteps: cr_buildstep_bash(), cr_buildstep_decrypt(), cr_buildstep_df(), cr_buildstep_docker(), cr_buildstep_edit(), cr_buildstep_extract(), cr_buildstep_gcloud(), cr_buildstep_gitsetup(), cr_buildstep_mailgun(), cr_buildstep_nginx_setup(), cr_buildstep_packagetests(), cr_buildstep_pkgdown(), cr_buildstep_run(), cr_buildstep_secret(), cr_buildstep_slack(), cr_buildstep_targets(), cr_buildstep()

Examples

cr_project_set("my-project")
cr_bucket_set("my-bucket")

# create an R buildstep inline
cr_buildstep_r(c("paste('1+1=', 1+1)", "sessionInfo()"))
## Not run: 

# create an R buildstep from a local file
cr_buildstep_r("my-r-file.R")

# create an R buildstep from a file within the source of the Build
cr_buildstep_r("inst/schedule/schedule.R", r_source = "runtime")

# create an R buildstep with Rscript arguments and use a large
# machine with 32 cores

## create storage source
storage_source <- cr_build_upload_gcs(
  "my-r-script.R"
)
## create the buildstep with the R script
step1 <- cr_buildstep_r("deploy/my-r-script.R",
  r_source = "runtime",
  rscript_args = c("args_1=<args1>", "args_2=<args_2>")
)

## run the script on Cloud Build
cr_build(
  cr_build_yaml(
    steps = step1
  ),
  source = storage_source,
  options = list(machineType = "E2_HIGHCPU_32")
)

## End(Not run)
# use a different Rocker image e.g. rocker/verse
cr_buildstep_r(c(
  "library(dplyr)",
  "mtcars %>% select(mpg)",
  "sessionInfo()"
),
name = "verse"
)

# use your own R image with custom R
my_r <- c("devtools::install()", "pkgdown::build_site()")
br <- cr_buildstep_r(my_r, name = "gcr.io/gcer-public/packagetools:latest")

MarkEdmondson1234/googleCloudRunner documentation built on Feb. 5, 2023, 5:45 p.m.