# This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. """
Transform the beetmover task into an actual task description. """
from taskgraph.transforms.base import TransformSequence from taskgraph.util.dependencies import get_primary_dependency from taskgraph.util.schema import Schema from taskgraph.util.treeherder import replace_group from voluptuous import Optional, Required
from gecko_taskgraph.transforms.task import task_description_schema from gecko_taskgraph.util.attributes import copy_attributes_from_dependent_job from gecko_taskgraph.util.scriptworker import (
generate_beetmover_artifact_map,
generate_beetmover_upstream_artifacts,
get_beetmover_action_scope,
get_beetmover_bucket_scope,
)
transforms = TransformSequence()
beetmover_description_schema = Schema(
{ # unique label to describe this beetmover task
Required("label"): str,
Required("dependencies"): task_description_schema["dependencies"], # treeherder is allowed here to override any defaults we use for beetmover. See # taskcluster/gecko_taskgraph/transforms/task.py for the schema details, and the # below transforms for defaults of various values.
Optional("treeherder"): task_description_schema["treeherder"], # locale is passed only for l10n beetmoving
Optional("locale"): str,
Required("shipping-phase"): task_description_schema["shipping-phase"],
Optional("shipping-product"): task_description_schema["shipping-product"],
Optional("attributes"): task_description_schema["attributes"],
Optional("task-from"): task_description_schema["task-from"],
}
)
@transforms.add def remove_name(config, jobs): for job in jobs: if"name"in job: del job["name"] yield job
# XXX This should be explicitly set via build attributes or something if"android"in job["label"] or"fennec"in job["label"]:
app_name = "Fennec" elif config.graph_config["trust-domain"] == "comm":
app_name = "Thunderbird" else: # XXX Even DevEdition is called Firefox
app_name = "Firefox"
@transforms.add def make_task_worker(config, jobs): for job in jobs:
valid_beetmover_job = len(job["dependencies"]) == 2 and any(
["signing"in j for j in job["dependencies"]]
) ifnot valid_beetmover_job: raise NotImplementedError("Beetmover must have two dependencies.")
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.