gecko-dev/taskcluster/taskgraph/transforms/per_platform_dummy.py
Aki Sasaki a604a76176 Bug 1501878 - required_signoffs attribute. r=tomprince
If a task has `required_signoffs` that match a release's `required_signoffs`, we should defer running that task until we have a matching `signoff_url`.

- add filter_out_missing_signoffs
- add transforms changes to inherit upstream `required_signoffs`
- add `mar-signing` `required_signoffs` to the `partials-signing`, `mar-signing`, and `mar-signing-l10n` kinds

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

--HG--
extra : moz-landing-system : lando
2018-11-20 21:26:18 +00:00

31 lines
1.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 repackage task into an actual task description.
"""
from __future__ import absolute_import, print_function, unicode_literals
from taskgraph.transforms.base import TransformSequence
from taskgraph.util.attributes import copy_attributes_from_dependent_job
transforms = TransformSequence()
@transforms.add
def one_task_per_product_and_platform(config, jobs):
unique_products_and_platforms = set()
for job in jobs:
dep_task = job["primary-dependency"]
if 'primary-dependency' in job:
del job['primary-dependency']
product = dep_task.attributes.get("shipping_product")
platform = dep_task.attributes.get("build_platform")
if (product, platform) not in unique_products_and_platforms:
attributes = copy_attributes_from_dependent_job(dep_task)
attributes.update(job.get('attributes', {}))
job['attributes'] = attributes
job["name"] = "{}-{}".format(product, platform)
yield job
unique_products_and_platforms.add((product, platform))