54 lines
2.0 KiB
Python
54 lines
2.0 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 upload-symbols task description template,
|
|
taskcluster/ci/upload-symbols/job-template.yml
|
|
into an actual task description.
|
|
"""
|
|
|
|
from __future__ import absolute_import, print_function, unicode_literals
|
|
|
|
from taskgraph.transforms.base import TransformSequence
|
|
|
|
|
|
transforms = TransformSequence()
|
|
|
|
|
|
@transforms.add
|
|
def fill_template(config, tasks):
|
|
for task in tasks:
|
|
dep = task['dependent-task']
|
|
|
|
# Fill out the dynamic fields in the task description
|
|
task['label'] = dep.label + '-upload-symbols'
|
|
task['dependencies'] = {'build': dep.label}
|
|
task['worker']['env']['GECKO_HEAD_REPOSITORY'] = config.params['head_repository']
|
|
task['worker']['env']['GECKO_HEAD_REV'] = config.params['head_rev']
|
|
|
|
build_platform = dep.attributes.get('build_platform')
|
|
build_type = dep.attributes.get('build_type')
|
|
attributes = task.setdefault('attributes', {})
|
|
attributes['build_platform'] = build_platform
|
|
attributes['build_type'] = build_type
|
|
if 'nightly' in build_platform:
|
|
attributes['nightly'] = True
|
|
|
|
treeherder = task.get('treeherder', {})
|
|
th = dep.task.get('extra')['treeherder']
|
|
treeherder.setdefault('platform',
|
|
"{}/{}".format(th['machine']['platform'],
|
|
build_type))
|
|
treeherder.setdefault('tier', th['tier'])
|
|
treeherder.setdefault('kind', th['jobKind'])
|
|
if dep.attributes.get('nightly'):
|
|
treeherder.setdefault('symbol', 'tc(SymN)')
|
|
else:
|
|
treeherder.setdefault('symbol', 'tc(Sym)')
|
|
task['treeherder'] = treeherder
|
|
|
|
# clear out the stuff that's not part of a task description
|
|
del task['dependent-task']
|
|
|
|
yield task
|