Source code

Revision control

Copy as Markdown

Other Tools

# 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 http://mozilla.org/MPL/2.0/.
from taskgraph.transforms.base import TransformSequence
transforms = TransformSequence()
CUSTOM_CAR_TASKS = [
"linux64-custom-car",
"win64-custom-car",
"macosx-custom-car",
"macosx-arm64-custom-car",
"android-custom-car",
]
@transforms.add
def add_custom_car_optimization(config, tasks):
for task in tasks:
if task.get("name") not in CUSTOM_CAR_TASKS:
yield task
continue
task_name = task["name"]
trust_domain = config.graph_config["trust-domain"]
level = config.params["level"]
index_route = f"{trust_domain}.cache.level-{level}.toolchain.{task_name}.latest"
full_index_route = f"index.{index_route}"
task.setdefault("routes", []).append(full_index_route)
if config.params["project"] == "try":
index_paths = []
for search_level in reversed(range(int(level), 4)):
search_route = f"{trust_domain}.cache.level-{search_level}.toolchain.{task_name}.latest"
index_paths.append(search_route)
task["optimization"] = {"index-search": index_paths}
yield task