Ejemplo n.º 1
0
"""
Chunk the partner repack tasks by subpartner and locale
"""


import copy

from mozbuild.chunkify import chunkify
from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.util.partners import (
    get_repack_ids_by_platform,
    apply_partner_priority,
)

transforms = TransformSequence()
transforms.add(apply_partner_priority)


@transforms.add
def chunk_partners(config, jobs):
    for job in jobs:
        dep_job = job["primary-dependency"]
        build_platform = dep_job.attributes["build_platform"]
        repack_id = dep_job.task.get("extra", {}).get("repack_id")
        repack_ids = dep_job.task.get("extra", {}).get("repack_ids")
        copy_repack_ids = job.pop("copy-repack-ids", False)

        if copy_repack_ids:
            assert repack_ids, "dep_job {} doesn't have repack_ids!".format(
                dep_job.label
            )
Ejemplo n.º 2
0
from collections import defaultdict
import json
import logging

from gecko_taskgraph.transforms.base import TransformSequence
from gecko_taskgraph.util.partners import (
    apply_partner_priority,
    check_if_partners_enabled,
    get_partner_config_by_kind,
    generate_attribution_code,
)

log = logging.getLogger(__name__)

transforms = TransformSequence()
transforms.add(check_if_partners_enabled)
transforms.add(apply_partner_priority)


@transforms.add
def add_command_arguments(config, tasks):
    enabled_partners = config.params.get("release_partners")
    dependencies = {}
    fetches = defaultdict(set)
    attributions = []
    release_artifacts = []
    attribution_config = get_partner_config_by_kind(config, config.kind)

    for partner_config in attribution_config.get("configs", []):
        # we might only be interested in a subset of all partners, eg for a respin
        if enabled_partners and partner_config[
Ejemplo n.º 3
0
        CONFIG_PER_BOUNCER_PRODUCT_VANILLA["installer"]["file_names"],
    },
    "stub-installer": {
        "name_postfix":
        "-{partner}-{sub_config}-stub",
        # We currently have a sole win32 stub installer that is to be used
        # in all windows platforms to toggle between full installers
        "path_template":
        RELEASES_PARTNERS_PATH_TEMPLATE.replace("{ftp_platform}", "win32"),
        "file_names":
        CONFIG_PER_BOUNCER_PRODUCT_VANILLA["stub-installer"]["file_names"],
    },
}

transforms = TransformSequence()
transforms.add(check_if_partners_enabled)


@transforms.add
def make_task_worker(config, jobs):
    for job in jobs:
        resolve_keyed_by(job,
                         "worker-type",
                         item_name=job["name"],
                         **{"release-level": config.params.release_level()})
        resolve_keyed_by(job,
                         "scopes",
                         item_name=job["name"],
                         **{"release-level": config.params.release_level()})
        resolve_keyed_by(job,
                         "bouncer-products",