gecko-dev/taskcluster/taskgraph/transforms/release_generate_checksums.py
Tom Prince f8cc2f6b8f Bug 1490094: [release] Configure staging release resources via dedicated parameter; r=bhearsum
Currently, release resources such as balrog, bouncer and CDN urls are
configured by project. However, all production branches use one value and all
other branches use another. Rather than duplicate lists of projects, add a
helper to identify production release branches.

Differential Revision: https://phabricator.services.mozilla.com/D5583

--HG--
extra : moz-landing-system : lando
2018-09-11 21:09:28 +00:00

53 lines
1.5 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 checksums task into an actual task description.
"""
from __future__ import absolute_import, print_function, unicode_literals
import copy
from taskgraph.transforms.base import TransformSequence
from taskgraph.util.scriptworker import get_release_config
from taskgraph.util.schema import (
resolve_keyed_by,
)
import logging
logger = logging.getLogger(__name__)
transforms = TransformSequence()
@transforms.add
def handle_keyed_by(config, jobs):
"""Resolve fields that can be keyed by project, etc."""
fields = [
"run.config",
"run.extra-config",
]
for job in jobs:
job = copy.deepcopy(job)
for field in fields:
resolve_keyed_by(
item=job,
field=field,
item_name=job['name'],
**{'release-level': config.params.release_level()}
)
yield job
@transforms.add
def interpolate(config, jobs):
release_config = get_release_config(config)
for job in jobs:
mh_options = list(job["run"]["options"])
job["run"]["options"] = [
option.format(version=release_config["version"],
build_number=release_config["build_number"])
for option in mh_options
]
yield job