fune/taskcluster/taskgraph/transforms/beetmover_source.py
Aki Sasaki d7ba2bf55e bug 1423081 - source readme. r=callek
In bug 749312, we were given permission to create a source readme
instead of a source tarball. This will save us cycles, disk, and
human configuration time.

We still need to address the missing balrog_props.json for
beetmover-source for that task to turn green.

MozReview-Commit-ID: wnyPoNXCsH

--HG--
extra : rebase_source : 843751523e1fce5743849f43796788dbba5115d3
extra : histedit_source : 2993eb186dc7bd71ad35af48d4393803b0b147dc
2017-12-05 19:10:01 -08:00

48 lines
2.1 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-source task to also append `build` as dependency
"""
from __future__ import absolute_import
from taskgraph.transforms.base import TransformSequence
transforms = TransformSequence()
@transforms.add
def tweak_beetmover_source_dependencies_and_upstream_artifacts(config, jobs):
for job in jobs:
# HACK1: instead of grabbing SOURCE file from `release-source` task, we
# instead take it along with SOURCE.asc directly from the
# `release-source-signing`.
#
# HACK2: This way, we can just overwrite the `build`
# dependency, which at this point still is `release-source` task, with
# the actual Nightly en-US linux64 build which contains the
# `balrog_props` file we're interested in.
#
# XXX: this hack should go away by either:
# * rewriting beetmover transforms to allow more flexibility in deps
# * ditch balrog_props in beetmover and rely on in-tree task payload
if job['attributes']['shipping_product'] == 'firefox':
job['dependencies']['build'] = u'build-linux64-nightly/opt'
elif job['attributes']['shipping_product'] == 'fennec':
job['dependencies']['build'] = u'build-android-api-16-nightly/opt'
elif job['attributes']['shipping_product'] == 'devedition':
job['dependencies']['build'] = u'build-linux64-devedition-nightly/opt'
else:
raise NotImplemented(
"Unknown shipping_product {} for beetmover_source!".format(
job['attributes']['shipping_product']
)
)
upstream_artifacts = job['worker']['upstream-artifacts']
for artifact in upstream_artifacts:
if artifact['taskType'] == 'build':
artifact['paths'].append(u'public/build/balrog_props.json')
break
yield job