# 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 https://mozilla.org/MPL/2.0/. """ tb-rust vendor things. """ from taskgraph.transforms.base import TransformSequence from taskgraph.util.schema import resolve_keyed_by from taskgraph.util.taskcluster import find_task_id transforms = TransformSequence() @transforms.add def resolve_keys(config, jobs): for job in jobs: for item in ("ssh-key-secret", "phab-token-secret", "routes", "scopes"): resolve_keyed_by(job, item, item, **{"level": str(config.params["level"])}) yield job @transforms.add def update_scopes(config, jobs): for job in jobs: for item in ("ssh-key-secret", "phab-token-secret"): secret = job.pop(item) if secret: job.setdefault("scopes", []).append(f"secrets:get:{secret}") yield job @transforms.add def update_routes(config, jobs): for job in jobs: for key, route in enumerate(job.get("routes", [])): if route.startswith("notify.email"): job["routes"][key] = route.format(owner=config.params["owner"]) for key, scope in enumerate(job.get("scopes", [])): if scope.startswith("notify:email"): job["scopes"][key] = scope.format(owner=config.params["owner"]) yield job @transforms.add def add_artifact_fetches(config, jobs): project = config.params["project"] for job in jobs: try: if project != "try-comm-central": previous_task_id = find_task_id( f"comm.v2.{project}.latest.thunderbird.tb-rust-vendor" ) job["dependencies"].append(previous_task_id) job["worker"]["env"]["PREVIOUS_TASK_ID"] = previous_task_id except KeyError: pass yield job