combine()
combine(name, deps=[])
A combine()
task copies the output files of its dependencies into a single
directory (the combine()
task's output directory). The task's output directory
will contain one subdirectory for each of its dependencies, each containing the
dependency's output files.
A common use case for this task is to "combine" the outputs of multiple related
tasks. For example, if you use different scripts to generate a collection of
figures, you can use a combine()
task to copy the generated figures into a
single directory.
Arguments
name
Type: String (required)
The task's name. This name must be unique within the task's COND
file. A task
name can only contain letters, numbers, hyphens (-
), and underscores (_
).
deps
Type: List of task identifiers (default: []
)
A list of task identifiers that this task should depend on. Conductor will ensure that all dependencies execute successfully before launching this task.
The dependencies listed in a combine()
task must have unique names. This is
because a combine()
task creates a subdirectory for each dependency using the
dependency's name.
For example, the task identifiers //foo:build
and //bar:build
are distinct,
but they share the same name and thus cannot both be listed as a dependency in a
combine()
task.
When depending on tasks defined in the same COND
file, you can just specify
the task's name prefixed by a colon (e.g., :compile
would refer to a task
named compile
defined in the same file). If you need to depend on a task
defined in a different COND
file, you must specify the fully qualified task
identifier (e.g., //experiments:benchmark
would refer to a task named
benchmark
defined in the COND
file in the experiments
directory).
Usage Example
combine(
name="make_figures",
deps=[
":make_figure1",
":make_figure2",
],
)
This task's output directory will contain two subdirectories: make_figure1
and
make_figure2
. The subdirectories will contain the outputs from the
:make_figure1
and :make_figure2
tasks respectively.