gecko-dev/taskcluster/taskgraph/transforms/balrog_toplevel.py
2019-05-29 23:47:07 +00:00

45 lines
1.6 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 taskgraph.transforms.base import TransformSequence
from taskgraph.util.scriptworker import (
get_release_config,
)
from taskgraph.util.yaml import load_yaml
from mozrelease.balrog import generate_update_properties
from mozilla_version.gecko import GeckoVersion
transforms = TransformSequence()
@transforms.add
def generate_update_line(config, jobs):
"""Resolve fields that can be keyed by platform, etc."""
release_config = get_release_config(config)
for job in jobs:
config_file = job.pop('whats-new-config')
update_config = load_yaml(config_file)
product = job['shipping-product']
if product == 'devedition':
product = 'firefox'
job['worker']['update-line'] = {}
for blob_type, suffix in [('wnp', ''), ('no-wnp', '-No-WNP')]:
context = {
'release-type': config.params['release_type'],
'product': product,
'version': GeckoVersion.parse(release_config['appVersion']),
'blob-type': blob_type,
'build-id': config.params['moz_build_date'],
}
job['worker']['update-line'][suffix] = generate_update_properties(
context, update_config)
yield job