gecko-dev/taskcluster/taskgraph/transforms/update_verify.py
2020-01-21 17:12:08 +00:00

55 lines
2 KiB
Python

# 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/.
"""
Transform the beetmover task into an actual task description.
"""
from __future__ import absolute_import, print_function, unicode_literals
from copy import deepcopy
from taskgraph.transforms.base import TransformSequence
from taskgraph.util.treeherder import add_suffix, inherit_treeherder_from_dep
transforms = TransformSequence()
@transforms.add
def add_command(config, tasks):
config_tasks = {}
for dep in config.kind_dependencies_tasks:
if 'update-verify-config' in dep.kind or 'update-verify-next-config' in dep.kind:
config_tasks[dep.name] = dep
for task in tasks:
config_task = config_tasks[task['name']]
total_chunks = task["extra"]["chunks"]
task['worker'].setdefault('env', {})['CHANNEL'] = (
config_task.task['extra']['channel'])
task.setdefault('fetches', {})[config_task.label] = [
"update-verify.cfg",
]
task['treeherder'] = inherit_treeherder_from_dep(task, config_task)
for this_chunk in range(1, total_chunks+1):
chunked = deepcopy(task)
chunked["treeherder"]["symbol"] = add_suffix(
chunked["treeherder"]["symbol"], this_chunk)
chunked["label"] = "release-update-verify-{}-{}/{}".format(
chunked["name"], this_chunk, total_chunks
)
if not chunked["worker"].get("env"):
chunked["worker"]["env"] = {}
chunked["run"] = {
'using': 'run-task',
'cwd': '{checkout}',
'command': 'tools/update-verify/scripts/chunked-verify.sh '
'{} {}'.format(
total_chunks,
this_chunk,
),
'sparse-profile': 'update-verify',
}
yield chunked