Build, check and install internal dependencies

build_check_install(
  dep_structure,
  install_direction = "all",
  steps = c("build", "check", "install"),
  rcmd_args = list(check = c("--no-multiarch", "--with-keep.source", "--install-tests")),
  artifact_dir = tempfile(),
  install_external_deps = TRUE,
  upgrade = "never",
  package_list = NULL,
  dry = FALSE,
  verbose = 1,
  ...
)

Arguments

dep_structure

(dependency_structure) output of function dependency_table; uses dep_structure$table to infer the packages to apply action to and infer installation order; uses dep_structure$deps to infer upstream dependencies

install_direction

"upstream", "downstream" or "all"; which packages to install (according to dependency structure). By default this is only "upstream"

steps

(character vector) subset of "build", "check", "install"; useful to skip checking for example

rcmd_args

(list) with names build, check, install which are vectors that are passed as separate arguments to the R CMD commands

artifact_dir

(character) directory to place built R packages and logs

install_external_deps

logical to describe whether to install external dependencies of package using remotes::install_deps() (or renv::install() if inside an renv environment) .

upgrade

argument passed to remotes::install_deps(), defaults to 'never'. Ignored if inside an renv environment.

package_list

(character) If not NULL, an additional filter, only packages on this list will be considered and their dependencies installed if needed (advanced usage only).

dry

(logical) dry run that outputs what would happen without actually doing it.

verbose

verbosity level, incremental; from 0 (none) to 2 (high)

...

Arguments passed on to install_deps

install_project

(logical) whether to also install the current package (i.e. the package named in dependency_structure$current_pkg), ignored unless install_direction = "upstream" (because downstream deps automatically install all their upstream deps)

Value

list with entries

  • artifact_dir: artifact_dir directory with log files

  • pkg_actions: data.frame of performed actions

Examples

if (FALSE) {
x <- dependency_table(project = ".", verbose = 1)
build_check_install(x, steps = c("build", "check"), verbose = 1)
build_check_install(x, artifact_dir = "../output")
}