platforms.py (1450B)
1 # This Source Code Form is subject to the terms of the Mozilla Public 2 # License, v. 2.0. If a copy of the MPL was not distributed with this 3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. 4 5 from taskgraph.transforms.base import TransformSequence 6 from taskgraph.util.schema import resolve_keyed_by 7 8 transforms = TransformSequence() 9 10 11 @transforms.add 12 def resolve_platform_differences(config, tasks): 13 for task in tasks: 14 for key in ("worker-type", "run.command", "scopes", "worker.artifacts", "worker.taskcluster-proxy", "worker.max-run-time"): 15 resolve_keyed_by(task, key, task["name"], platform=task["attributes"]["build_platform"]) 16 yield task 17 18 19 @transforms.add 20 def add_env_vars(config, tasks): 21 for task in tasks: 22 env = task["worker"].setdefault("env", {}) 23 if task["attributes"]["build_platform"].startswith(("mac", "windows")): 24 env.update({"DOMSUF": "localdomain", "HOST": "localhost"}) 25 26 if task["attributes"]["build_platform"].startswith("mac"): 27 env.update({"NSS_TASKCLUSTER_MAC": "1"}) 28 29 if config.params["try_options"].get("nspr_patch"): 30 env.update({"ALLOW_NSPR_PATCH": "1"}) 31 32 yield task 33 34 35 @transforms.add 36 def remove_docker_image_for_gw(config, tasks): 37 for task in tasks: 38 if task["attributes"]["build_platform"].startswith(("mac", "windows")): 39 task["worker"].pop("docker-image", None) 40 yield task