Parameters#
Taskgraph generation takes a collection of Parameters as input, in the form of a JSON or YAML file. Below are the parameters that Taskgraph supports.
Note
Projects may define additional parameters on top of these ones.
Push Information#
These parameters describe metadata associated with the push that triggered the Decision Task.
base_repository#
The repository from which to do an initial clone.
head_repository#
The repository containing the changeset to be built. This may differ from
base_repository
in cases wherebase_repository
is likely to be cached and only a few additional commits are needed fromhead_repository
.
base_rev#
The previous revision before
head_rev
got merged into. This can be a short revision string.
head_rev#
The revision to check out, this can be a short revision string.
base_ref#
Reference where
head_rev
got merged into. It is usually a branch or a tag.
head_ref#
Reference that contains the
head_rev
. It defaults to the current branch, then to the current revision if no branch is found.
head_tag#
The tag attached to the revision, if any.
files_changed#
The list of all files added or modified by the push.
owner#
Email address indicating the person who made the push. Note that this value may be forged and must not be relied on for authentication.
pushlog_id#
The ID from the
hg.mozilla.org
pushlog or 0.
pushdate#
The timestamp of the push to the repository that triggered this decision task. Expressed as an integer in seconds since the UNIX epoch.
build_date#
The timestamp of the build date. Defaults to
pushdate
and falls back to present time of taskgraph invocation. Expressed as an integer seconds since the UNIX epoch.
moz_build_date#
A formatted timestamp of
build_date
. Expressed as a string with the following format: %Y%m%d%H%M%S
repository_type#
The type of repository, either
hg
orgit
.
tasks_for#
The
tasks_for
value used to generate the decision task.
Project Information#
These parameters describe the “project” (or repository) that triggered the Decision Task.
project#
Another name for what may otherwise be called repository. At Mozilla this may also be referred to as tree or branch. This is the unqualified name, such as
mozilla-central
orfenix
.
level#
The SCM level associated with this tree.
Target Set#
These parameters are used at the target_task
phase of graph generation.
enable_always_target#
Can either be a boolean or a list of kinds.
When
True
, any task with thealways_target
attribute will be included in thetarget_task_graph
regardless of whether they were filtered out by thetarget_tasks_method
or not. Because they are not part of thetarget_set
, they will still be eligible for optimization when theoptimize_target_tasks
parameter isFalse
.When specified as a list of kinds, only tasks with a matching kind will be eligible for addition to the graph.
filters#
List of filter functions (from
taskcluster/gecko_taskgraph/filter_tasks.py
) to apply. This is usually defined internally, as filters are typically global.
target_tasks_method#
The method to use to determine the target task set. This is the suffix of one of the functions in
taskcluster/gecko_taskgraph/target_tasks.py
.
Optimization#
These parameters are used at the optimization
phase of graph generation.
optimize_strategies#
A Python path of the form
<module>:<object>
pointing to a dictionary of optimization strategies to use, overwriting the defaults.
optimize_target_tasks#
If true, then target tasks are eligible for optimization.
do_not_optimize#
Specify tasks to not optimize out of the graph. This is a list of labels. Any tasks in the graph matching one of the labels will not be optimized out of the graph.
existing_tasks#
Specify tasks to optimize out of the graph. This is a dictionary of label to taskId. Any tasks in the graph matching one of the labels will use the previously-run taskId rather than submitting a new task.
Code Review#
These parameters are used by Mozilla’s code review bot.
code-review.phabricator-build-target#
The code review process needs to know the Phabricator Differential diff that started the analysis. This parameter must start with PHID-DIFF-
Local Configuration#
These parameters only apply when generating Taskgraph locally.
target-kind#
Generate only the given kind and its kind-dependencies. This is used for local inspection of the graph and is not supported at run-time.