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 where base_repository is likely to be cached and only a few additional commits are needed from head_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.

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

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

level

The SCM level associated with this tree.

Target Set

These parameters are used at the target_task phase of graph generation.

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.