예제 #1
0
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:
예제 #3
0
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,
    }
})
예제 #4
0
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)

예제 #5
0
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")
예제 #6
0
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']
예제 #7
0
"""

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:
예제 #11
0
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)
예제 #13
0
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
예제 #14
0
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:
예제 #16
0
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'
예제 #17
0
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'],
})
예제 #18
0
    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):
예제 #19
0
# 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(
예제 #20
0
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)
예제 #21
0
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'
예제 #22
0
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', {})
예제 #23
0
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
예제 #24
0
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'],
})
예제 #25
0
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
예제 #26
0
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',
예제 #27
0
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},
})
예제 #28
0
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
예제 #29
0
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,
    }
})
예제 #30
0
                                         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