signing_description_schema = schema.extend({ # Artifacts from dep task to sign - Sync with taskgraph/transforms/task.py # because this is passed directly into the signingscript worker Required("upstream-artifacts"): [{ # taskId of the task with the artifact Required("taskId"): taskref_or_string, # type of signing task (for CoT) Required("taskType"): text_type, # Paths to the artifacts to sign Required("paths"): [text_type], # Signing formats to use on each of the paths Required("formats"): [text_type], }], # depname is used in taskref's to identify the taskID of the unsigned things Required("depname"): text_type, # attributes for this task Optional("attributes"): { text_type: object }, # unique label to describe this signing task, defaults to {dep.label}-signing Optional("label"): text_type, # treeherder is allowed here to override any defaults we use for signing. See # taskcluster/taskgraph/transforms/task.py for the schema details, and the # below transforms for defaults of various values. Optional("treeherder"): task_description_schema["treeherder"], # Routes specific to this task, if defined Optional("routes"): [text_type], Optional("shipping-phase"): task_description_schema["shipping-phase"], Optional("shipping-product"): task_description_schema["shipping-product"], Optional("dependent-tasks"): { text_type: object }, # Optional control for how long a task may run (aka maxRunTime) Optional("max-run-time"): int, Optional("extra"): { text_type: object }, # Max number of partner repacks per chunk Optional("repacks-per-chunk"): int, # Override the default priority for the project Optional("priority"): task_description_schema["priority"], })
generate_beetmover_upstream_artifacts, get_beetmover_bucket_scope, get_beetmover_action_scope, get_worker_type_for_scope, should_use_artifact_map) from taskgraph.transforms.task import task_description_schema from voluptuous import Required, Optional beetmover_checksums_description_schema = schema.extend({ Required('depname', default='build'): basestring, Optional('label'): basestring, Optional('treeherder'): task_description_schema['treeherder'], Optional('locale'): basestring, Optional('shipping-phase'): task_description_schema['shipping-phase'], Optional('shipping-product'): task_description_schema['shipping-product'], Optional('attributes'): task_description_schema['attributes'], }) transforms = TransformSequence() transforms.add_validate(beetmover_checksums_description_schema) @transforms.add def make_beetmover_checksums_description(config, jobs): for job in jobs:
packaging_description_schema = schema.extend({ # depname is used in taskref's to identify the taskID of the signed things Required('depname', default='build'): basestring, # unique label to describe this repackaging task Optional('label'): basestring, # treeherder is allowed here to override any defaults we use for repackaging. See # taskcluster/taskgraph/transforms/task.py for the schema details, and the # below transforms for defaults of various values. Optional('treeherder'): job_description_schema['treeherder'], # If a l10n task, the corresponding locale Optional('locale'): basestring, # Routes specific to this task, if defined Optional('routes'): [basestring], # passed through directly to the job description Optional('extra'): job_description_schema['extra'], # passed through to job description Optional('fetches'): job_description_schema['fetches'], # Shipping product and phase Optional('shipping-product'): job_description_schema['shipping-product'], Optional('shipping-phase'): job_description_schema['shipping-phase'], Required('package-formats'): optionally_keyed_by( 'build-platform', 'release-type', [basestring]), # All l10n jobs use mozharness Required('mozharness'): { # Config files passed to the mozharness script Required('config'): optionally_keyed_by('build-platform', [basestring]), # Additional paths to look for mozharness configs in. These should be # relative to the base of the source checkout Optional('config-paths'): [basestring], # if true, perform a checkout of a comm-central based branch inside the # gecko checkout Required('comm-checkout', default=False): bool, } })
from taskgraph.transforms.task import task_description_schema from voluptuous import Required, Optional transforms = TransformSequence() release_generate_checksums_beetmover_schema = schema.extend({ # depname is used in taskref's to identify the taskID of the unsigned things Required('depname', default='build'): basestring, # unique label to describe this beetmover task, defaults to {dep.label}-beetmover Optional('label'): basestring, # treeherder is allowed here to override any defaults we use for beetmover. See # taskcluster/taskgraph/transforms/task.py for the schema details, and the # below transforms for defaults of various values. Optional('treeherder'): task_description_schema['treeherder'], Optional('shipping-phase'): task_description_schema['shipping-phase'], Optional('shipping-product'): task_description_schema['shipping-product'], Optional('attributes'): task_description_schema['attributes'], }) transforms = TransformSequence() transforms.add_validate(release_generate_checksums_beetmover_schema)
from __future__ import absolute_import, print_function, unicode_literals from six import text_type from taskgraph.loader.single_dep import schema from taskgraph.transforms.base import TransformSequence from taskgraph.transforms.beetmover import craft_release_properties from taskgraph.util.attributes import copy_attributes_from_dependent_job from taskgraph.transforms.task import task_description_schema from voluptuous import Optional beetmover_checksums_description_schema = schema.extend({ Optional('label'): text_type, Optional('extra'): object, Optional('shipping-phase'): task_description_schema['shipping-phase'], Optional('shipping-product'): task_description_schema['shipping-product'], }) transforms = TransformSequence() transforms.add_validate(beetmover_checksums_description_schema) @transforms.add def make_beetmover_checksums_description(config, jobs): for job in jobs: dep_job = job['primary-dependency'] attributes = dep_job.attributes build_platform = attributes.get("build_platform")
from taskgraph.util.partners import check_if_partners_enabled, get_partner_config_by_kind from taskgraph.util.scriptworker import ( get_signing_cert_scope_per_platform, ) from taskgraph.util.taskcluster import get_artifact_path from taskgraph.transforms.task import task_description_schema from voluptuous import Required, Optional transforms = TransformSequence() repackage_signing_description_schema = schema.extend({ Required('depname', default='repackage'): text_type, Optional('label'): text_type, Optional('extra'): object, Optional('shipping-product'): task_description_schema['shipping-product'], Optional('shipping-phase'): task_description_schema['shipping-phase'], Optional('priority'): task_description_schema['priority'], }) transforms.add(check_if_partners_enabled) transforms.add_validate(repackage_signing_description_schema) @transforms.add def make_repackage_signing_description(config, jobs): for job in jobs: dep_job = job['primary-dependency']
""" from __future__ import absolute_import, print_function, unicode_literals from six import text_type from taskgraph.loader.single_dep import schema from taskgraph.transforms.base import TransformSequence from taskgraph.transforms.beetmover import craft_release_properties from taskgraph.util.attributes import copy_attributes_from_dependent_job from taskgraph.transforms.task import task_description_schema from voluptuous import Optional beetmover_checksums_description_schema = schema.extend( { Optional("label"): text_type, Optional("extra"): object, Optional("shipping-phase"): task_description_schema["shipping-phase"], Optional("shipping-product"): task_description_schema["shipping-product"], } ) transforms = TransformSequence() transforms.add_validate(beetmover_checksums_description_schema) @transforms.add def make_beetmover_checksums_description(config, jobs): for job in jobs: dep_job = job["primary-dependency"] attributes = dep_job.attributes build_platform = attributes.get("build_platform")
from __future__ import absolute_import, print_function, unicode_literals from six import text_type from taskgraph.loader.single_dep import schema from taskgraph.transforms.base import TransformSequence from taskgraph.util.attributes import copy_attributes_from_dependent_job from taskgraph.util.scriptworker import get_signing_cert_scope from taskgraph.util.taskcluster import get_artifact_path from taskgraph.transforms.task import task_description_schema from voluptuous import Optional release_generate_checksums_signing_schema = schema.extend({ Optional("label"): text_type, Optional("treeherder"): task_description_schema["treeherder"], Optional("shipping-product"): task_description_schema["shipping-product"], Optional("shipping-phase"): task_description_schema["shipping-phase"], }) transforms = TransformSequence() transforms.add_validate(release_generate_checksums_signing_schema) @transforms.add def make_release_generate_checksums_signing_description(config, jobs): for job in jobs: dep_job = job["primary-dependency"] attributes = copy_attributes_from_dependent_job(dep_job)
from copy import deepcopy import logging logger = logging.getLogger(__name__) beetmover_description_schema = schema.extend({ # depname is used in taskref's to identify the taskID of the unsigned things Required('depname', default='build'): basestring, # unique label to describe this beetmover task, defaults to {dep.label}-beetmover Optional('label'): basestring, Required('partner-bucket-scope'): optionally_keyed_by('release-level', basestring), Required('partner-public-path'): Any(None, basestring), Required('partner-private-path'): Any(None, basestring), Optional('extra'): object, Required('shipping-phase'): task_description_schema['shipping-phase'], Optional('shipping-product'): task_description_schema['shipping-product'], }) transforms = TransformSequence() transforms.add(check_if_partners_enabled) transforms.add_validate(beetmover_description_schema)
get_beetmover_action_scope, ) from taskgraph.transforms.beetmover import craft_release_properties from taskgraph.transforms.task import task_description_schema from voluptuous import Optional transforms = TransformSequence() release_generate_checksums_beetmover_schema = schema.extend({ # unique label to describe this beetmover task, defaults to {dep.label}-beetmover Optional("label"): text_type, # treeherder is allowed here to override any defaults we use for beetmover. See # taskcluster/taskgraph/transforms/task.py for the schema details, and the # below transforms for defaults of various values. Optional("treeherder"): task_description_schema["treeherder"], Optional("shipping-phase"): task_description_schema["shipping-phase"], Optional("shipping-product"): task_description_schema["shipping-product"], Optional("attributes"): task_description_schema["attributes"], }) transforms = TransformSequence() transforms.add_validate(release_generate_checksums_beetmover_schema) @transforms.add def make_task_description(config, jobs): for job in jobs:
packaging_description_schema = schema.extend({ # unique label to describe this repackaging task Optional("label"): text_type, Optional("worker-type"): text_type, Optional("worker"): object, # treeherder is allowed here to override any defaults we use for repackaging. See # taskcluster/taskgraph/transforms/task.py for the schema details, and the # below transforms for defaults of various values. Optional("treeherder"): job_description_schema["treeherder"], # If a l10n task, the corresponding locale Optional("locale"): text_type, # Routes specific to this task, if defined Optional("routes"): [text_type], # passed through directly to the job description Optional("extra"): job_description_schema["extra"], # passed through to job description Optional("fetches"): job_description_schema["fetches"], # Shipping product and phase Optional("shipping-product"): job_description_schema["shipping-product"], Optional("shipping-phase"): job_description_schema["shipping-phase"], Required("package-formats"): optionally_keyed_by("build-platform", "release-type", [text_type]), # All l10n jobs use mozharness Required("mozharness"): { Extra: object, # Config files passed to the mozharness script Required("config"): optionally_keyed_by("build-platform", [text_type]), # Additional paths to look for mozharness configs in. These should be # relative to the base of the source checkout Optional("config-paths"): [text_type], # if true, perform a checkout of a comm-central based branch inside the # gecko checkout Optional("comm-checkout"): bool, }, })
transforms = TransformSequence() beetmover_description_schema = schema.extend({ # attributes is used for enabling artifact-map by declarative artifacts Required("attributes"): { text_type: object }, # unique label to describe this beetmover task, defaults to {dep.label}-beetmover Optional("label"): text_type, # treeherder is allowed here to override any defaults we use for beetmover. See # taskcluster/taskgraph/transforms/task.py for the schema details, and the # below transforms for defaults of various values. Optional("treeherder"): task_description_schema["treeherder"], Required("description"): text_type, Required("worker-type"): optionally_keyed_by("release-level", text_type), Required("run-on-projects"): [], # locale is passed only for l10n beetmoving Optional("locale"): text_type, Optional("shipping-phase"): task_description_schema["shipping-phase"], Optional("shipping-product"): task_description_schema["shipping-product"], }) transforms.add_validate(beetmover_description_schema)
from __future__ import absolute_import, print_function, unicode_literals from six import text_type from taskgraph.loader.single_dep import schema from taskgraph.transforms.base import TransformSequence from taskgraph.util.attributes import copy_attributes_from_dependent_job from taskgraph.util.scriptworker import ( get_signing_cert_scope, ) from taskgraph.transforms.task import task_description_schema from voluptuous import Optional checksums_signing_description_schema = schema.extend({ Optional('label'): text_type, Optional('treeherder'): task_description_schema['treeherder'], Optional('shipping-product'): task_description_schema['shipping-product'], Optional('shipping-phase'): task_description_schema['shipping-phase'], }) transforms = TransformSequence() transforms.add_validate(checksums_signing_description_schema) @transforms.add def make_checksums_signing_description(config, jobs): for job in jobs: dep_job = job['primary-dependency'] attributes = dep_job.attributes
from taskgraph.transforms.beetmover import craft_release_properties from taskgraph.util.attributes import copy_attributes_from_dependent_job from taskgraph.util.scriptworker import (generate_beetmover_artifact_map, generate_beetmover_upstream_artifacts, get_beetmover_bucket_scope, get_beetmover_action_scope) from taskgraph.transforms.task import task_description_schema from voluptuous import Optional beetmover_checksums_description_schema = schema.extend({ Optional('label'): text_type, Optional('treeherder'): task_description_schema['treeherder'], Optional('locale'): text_type, Optional('shipping-phase'): task_description_schema['shipping-phase'], Optional('shipping-product'): task_description_schema['shipping-product'], Optional('attributes'): task_description_schema['attributes'], }) transforms = TransformSequence() transforms.add_validate(beetmover_checksums_description_schema) @transforms.add def make_beetmover_checksums_description(config, jobs): for job in jobs: dep_job = job['primary-dependency']
generate_beetmover_upstream_artifacts, get_beetmover_action_scope, get_beetmover_bucket_scope, ) from taskgraph.util.treeherder import inherit_treeherder_from_dep from taskgraph.transforms.task import task_description_schema from voluptuous import Required, Optional beetmover_checksums_description_schema = schema.extend({ Required("attributes"): { text_type: object }, Optional("label"): text_type, Optional("treeherder"): task_description_schema["treeherder"], Optional("locale"): text_type, Optional("shipping-phase"): task_description_schema["shipping-phase"], Optional("shipping-product"): task_description_schema["shipping-product"], }) transforms = TransformSequence() transforms.add_validate(beetmover_checksums_description_schema) @transforms.add def make_beetmover_checksums_description(config, jobs): for job in jobs:
from taskgraph.loader.single_dep import schema from taskgraph.transforms.base import TransformSequence from taskgraph.util.attributes import copy_attributes_from_dependent_job from taskgraph.util.scriptworker import ( get_signing_cert_scope_per_platform, get_worker_type_for_scope, ) from taskgraph.transforms.task import task_description_schema from voluptuous import Required, Optional repackage_signing_description_schema = schema.extend({ Required('depname', default='geckodriver-repackage'): basestring, Optional('label'): basestring, Optional('treeherder'): task_description_schema['treeherder'], Optional('shipping-phase'): task_description_schema['shipping-phase'], }) transforms = TransformSequence() transforms.add_validate(repackage_signing_description_schema) @transforms.add def make_repackage_signing_description(config, jobs): for job in jobs: dep_job = job['primary-dependency'] attributes = copy_attributes_from_dependent_job(dep_job) attributes['repackage_type'] = 'repackage-signing'
beetmover_description_schema = schema.extend({ # depname is used in taskref's to identify the taskID of the unsigned things Required('depname', default='build'): basestring, # attributes is used for enabling artifact-map by declarative artifacts Required('attributes'): { basestring: object }, # unique label to describe this beetmover task, defaults to {dep.label}-beetmover Optional('label'): basestring, # treeherder is allowed here to override any defaults we use for beetmover. See # taskcluster/taskgraph/transforms/task.py for the schema details, and the # below transforms for defaults of various values. Optional('treeherder'): task_description_schema['treeherder'], Required('description'): basestring, Required('worker-type'): optionally_keyed_by('release-level', basestring), Required('run-on-projects'): [], # locale is passed only for l10n beetmoving Optional('locale'): basestring, Optional('shipping-phase'): task_description_schema['shipping-phase'], Optional('shipping-product'): task_description_schema['shipping-product'], })
get_geckoview_artifact_id, ) from taskgraph.util.schema import resolve_keyed_by, optionally_keyed_by from taskgraph.util.scriptworker import generate_beetmover_artifact_map from taskgraph.transforms.task import task_description_schema from voluptuous import Required, Optional beetmover_description_schema = schema.extend({ Optional('label'): text_type, Optional('treeherder'): task_description_schema['treeherder'], Required('run-on-projects'): task_description_schema['run-on-projects'], Required('run-on-hg-branches'): task_description_schema['run-on-hg-branches'], Optional('bucket-scope'): optionally_keyed_by('release-level', text_type), Optional('shipping-phase'): optionally_keyed_by('project', task_description_schema['shipping-phase']), Optional('shipping-product'): task_description_schema['shipping-product'], Optional('attributes'): task_description_schema['attributes'], }) transforms = TransformSequence() transforms.add_validate(beetmover_description_schema) @transforms.add def resolve_keys(config, jobs):
# comparable, so we cast all of the keys back to regular strings task_description_schema = { str(k): v for k, v in task_description_schema.schema.iteritems() } transforms = TransformSequence() taskref_or_string = Any(basestring, {Required('task-reference'): basestring}) beetmover_checksums_description_schema = schema.extend({ Required('depname', default='build'): basestring, Optional('label'): basestring, Optional('extra'): object, Optional('shipping-phase'): task_description_schema['shipping-phase'], Optional('shipping-product'): task_description_schema['shipping-product'], }) @transforms.add def validate(config, jobs): for job in jobs: label = job.get('primary-dependency', object).__dict__.get('label', '?no-label?') validate_schema( beetmover_checksums_description_schema, job, "In checksums-signing ({!r} kind) task for {!r}:".format(
from taskgraph.util.treeherder import replace_group from taskgraph.transforms.task import task_description_schema from voluptuous import Optional balrog_description_schema = schema.extend({ # unique label to describe this balrog task, defaults to balrog-{dep.label} Optional('label'): text_type, Optional( 'update-no-wnp', description="Whether the parallel `-No-WNP` blob should be updated as well.", ): optionally_keyed_by('release-type', bool), # treeherder is allowed here to override any defaults we use for beetmover. See # taskcluster/taskgraph/transforms/task.py for the schema details, and the # below transforms for defaults of various values. Optional('treeherder'): task_description_schema['treeherder'], Optional('attributes'): task_description_schema['attributes'], # Shipping product / phase Optional('shipping-product'): task_description_schema['shipping-product'], Optional('shipping-phase'): task_description_schema['shipping-phase'], }) transforms = TransformSequence() transforms.add_validate(balrog_description_schema)
from __future__ import absolute_import, print_function, unicode_literals from six import text_type from taskgraph.loader.single_dep import schema from taskgraph.transforms.base import TransformSequence from taskgraph.util.attributes import copy_attributes_from_dependent_job from taskgraph.util.scriptworker import ( get_signing_cert_scope_per_platform, ) from taskgraph.transforms.task import task_description_schema from voluptuous import Required, Optional repackage_signing_description_schema = schema.extend({ Required('depname', default='toolchain-geckodriver'): text_type, Optional('label'): text_type, Optional('treeherder'): task_description_schema['treeherder'], Optional('shipping-phase'): task_description_schema['shipping-phase'], }) transforms = TransformSequence() transforms.add_validate(repackage_signing_description_schema) @transforms.add def make_signing_description(config, jobs): for job in jobs: dep_job = job['primary-dependency'] attributes = copy_attributes_from_dependent_job(dep_job) attributes['repackage_type'] = 'repackage-signing'
from six import text_type from taskgraph.loader.single_dep import schema from taskgraph.transforms.base import TransformSequence from taskgraph.util.attributes import copy_attributes_from_dependent_job from taskgraph.util.scriptworker import ( get_signing_cert_scope, ) from taskgraph.util.taskcluster import get_artifact_path from taskgraph.transforms.task import task_description_schema from voluptuous import Required, Optional release_generate_checksums_signing_schema = schema.extend({ Required('depname', default='release-generate-checksums'): text_type, Optional('label'): text_type, Optional('treeherder'): task_description_schema['treeherder'], Optional('shipping-product'): task_description_schema['shipping-product'], Optional('shipping-phase'): task_description_schema['shipping-phase'], }) transforms = TransformSequence() transforms.add_validate(release_generate_checksums_signing_schema) @transforms.add def make_release_generate_checksums_signing_description(config, jobs): for job in jobs: dep_job = job['primary-dependency'] attributes = copy_attributes_from_dependent_job(dep_job) treeherder = job.get('treeherder', {})
from taskgraph.transforms.task import task_description_schema from voluptuous import Any, Required task_description_schema = {str(k): v for k, v in task_description_schema.schema.iteritems()} transforms = TransformSequence() langpack_sign_push_description_schema = schema.extend({ Required('label'): basestring, Required('description'): basestring, Required('worker-type'): optionally_keyed_by('release-level', basestring), Required('worker'): { Required('implementation'): 'sign-and-push-addons', Required('channel'): optionally_keyed_by( 'project', optionally_keyed_by('platform', Any('listed', 'unlisted'))), Required('upstream-artifacts'): None, # Processed here below }, Required('run-on-projects'): [], Required('scopes'): optionally_keyed_by('release-level', [basestring]), Required('shipping-phase'): task_description_schema['shipping-phase'], Required('shipping-product'): task_description_schema['shipping-product'], }) @transforms.add def set_label(config, jobs): for job in jobs: label = 'sign-and-push-langpacks-{}'.format(job['primary-dependency'].label) job['label'] = label
packaging_description_schema = schema.extend({ # unique label to describe this repackaging task Optional('label'): text_type, # Routes specific to this task, if defined Optional('routes'): [text_type], # passed through directly to the job description Optional('extra'): task_description_schema['extra'], # Shipping product and phase Optional('shipping-product'): task_description_schema['shipping-product'], Optional('shipping-phase'): task_description_schema['shipping-phase'], Required('package-formats'): _by_platform([text_type]), # All l10n jobs use mozharness Required('mozharness'): { # Config files passed to the mozharness script Required('config'): _by_platform([text_type]), # Additional paths to look for mozharness configs in. These should be # relative to the base of the source checkout Optional('config-paths'): [text_type], # if true, perform a checkout of a comm-central based branch inside the # gecko checkout Optional('comm-checkout'): bool, }, # Override the default priority for the project Optional('priority'): task_description_schema['priority'], })
from taskgraph.util.attributes import copy_attributes_from_dependent_job from taskgraph.util.scriptworker import ( get_signing_cert_scope, get_worker_type_for_scope, add_scope_prefix, ) from taskgraph.util.treeherder import replace_group from taskgraph.transforms.task import task_description_schema from voluptuous import Required, Optional checksums_signing_description_schema = schema.extend({ Required('depname', default='beetmover'): basestring, Optional('label'): basestring, Optional('treeherder'): task_description_schema['treeherder'], Optional('shipping-product'): task_description_schema['shipping-product'], Optional('shipping-phase'): task_description_schema['shipping-phase'], }) transforms = TransformSequence() transforms.add_validate(checksums_signing_description_schema) @transforms.add def make_checksums_signing_description(config, jobs): for job in jobs: dep_job = job['primary-dependency'] attributes = dep_job.attributes
transforms = TransformSequence() # shortcut for a string where task references are allowed taskref_or_string = Any(basestring, {Required('task-reference'): basestring}) balrog_description_schema = schema.extend({ # unique label to describe this balrog task, defaults to balrog-{dep.label} Optional('label'): basestring, # treeherder is allowed here to override any defaults we use for beetmover. See # taskcluster/taskgraph/transforms/task.py for the schema details, and the # below transforms for defaults of various values. Optional('treeherder'): task_description_schema['treeherder'], Optional('attributes'): task_description_schema['attributes'], # Shipping product / phase Optional('shipping-product'): task_description_schema['shipping-product'], Optional('shipping-phase'): task_description_schema['shipping-phase'], }) @transforms.add def validate(config, jobs): for job in jobs: label = job.get('primary-dependency',
signing_description_schema = schema.extend({ # Artifacts from dep task to sign - Sync with taskgraph/transforms/task.py # because this is passed directly into the signingscript worker Required('upstream-artifacts'): [{ # taskId of the task with the artifact Required('taskId'): taskref_or_string, # type of signing task (for CoT) Required('taskType'): basestring, # Paths to the artifacts to sign Required('paths'): [basestring], # Signing formats to use on each of the paths Required('formats'): [basestring], }], # depname is used in taskref's to identify the taskID of the unsigned things Required('depname'): basestring, # unique label to describe this signing task, defaults to {dep.label}-signing Optional('label'): basestring, # treeherder is allowed here to override any defaults we use for signing. See # taskcluster/taskgraph/transforms/task.py for the schema details, and the # below transforms for defaults of various values. Optional('treeherder'): task_description_schema['treeherder'], # Routes specific to this task, if defined Optional('routes'): [basestring], Optional('shipping-phase'): task_description_schema['shipping-phase'], Optional('shipping-product'): task_description_schema['shipping-product'], # Optional control for how long a task may run (aka maxRunTime) Optional('max-run-time'): int, Optional('extra'): {basestring: object}, })
from taskgraph.util.schema import resolve_keyed_by, optionally_keyed_by from taskgraph.util.scriptworker import (generate_beetmover_artifact_map, get_worker_type_for_scope) from taskgraph.transforms.task import task_description_schema from voluptuous import Required, Optional beetmover_description_schema = schema.extend({ Required('depname', default='build'): basestring, Optional('label'): basestring, Optional('treeherder'): task_description_schema['treeherder'], Required('run-on-projects'): task_description_schema['run-on-projects'], Required('run-on-hg-branches'): task_description_schema['run-on-hg-branches'], Optional('bucket-scope'): optionally_keyed_by('release-level', basestring), Optional('shipping-phase'): optionally_keyed_by('project', task_description_schema['shipping-phase']), Optional('shipping-product'): task_description_schema['shipping-product'], Optional('attributes'): task_description_schema['attributes'], }) transforms = TransformSequence() transforms.add_validate(beetmover_description_schema) @transforms.add
packaging_description_schema = schema.extend({ # depname is used in taskref's to identify the taskID of the signed things Required('depname', default='build'): basestring, # unique label to describe this repackaging task Optional('label'): basestring, # Routes specific to this task, if defined Optional('routes'): [basestring], # passed through directly to the job description Optional('extra'): task_description_schema['extra'], # Shipping product and phase Optional('shipping-product'): task_description_schema['shipping-product'], Optional('shipping-phase'): task_description_schema['shipping-phase'], Required('package-formats'): _by_platform([basestring]), # All l10n jobs use mozharness Required('mozharness'): { # Config files passed to the mozharness script Required('config'): _by_platform([basestring]), # Additional paths to look for mozharness configs in. These should be # relative to the base of the source checkout Optional('config-paths'): [basestring], # if true, perform a checkout of a comm-central based branch inside the # gecko checkout Required('comm-checkout', default=False): bool, } })
get_beetmover_action_scope) from taskgraph.util.treeherder import replace_group transforms = TransformSequence() beetmover_description_schema = schema.extend({ # unique label to describe this beetmover task, defaults to {dep.label}-beetmover Optional('label'): text_type, # treeherder is allowed here to override any defaults we use for beetmover. See # taskcluster/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'): text_type, Required('shipping-phase'): task_description_schema['shipping-phase'], Optional('shipping-product'): task_description_schema['shipping-product'], Optional('attributes'): task_description_schema['attributes'], }) transforms.add_validate(beetmover_description_schema) @transforms.add