diff options
Diffstat (limited to 'taskcluster/taskgraph/transforms/beetmover_source.py')
-rw-r--r-- | taskcluster/taskgraph/transforms/beetmover_source.py | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/taskcluster/taskgraph/transforms/beetmover_source.py b/taskcluster/taskgraph/transforms/beetmover_source.py new file mode 100644 index 0000000000..967a501cdc --- /dev/null +++ b/taskcluster/taskgraph/transforms/beetmover_source.py @@ -0,0 +1,36 @@ +# 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 remove_build_dependency_in_beetmover_source(config, jobs): + for job in jobs: + # XXX: We delete the build dependency because, unlike the other beetmover + # tasks, source doesn't depend on any build task at all. This hack should + # go away when we rewrite beetmover transforms to allow more flexibility in deps + # Essentially, we should use multi_dep for beetmover. + for depname in job["dependencies"]: + if "signing" not in depname: + del job["dependencies"][depname] + break + else: + raise Exception("Can't find build dep in beetmover source!") + + all_upstream_artifacts = job["worker"]["upstream-artifacts"] + upstream_artifacts_without_build = [ + upstream_artifact + for upstream_artifact in all_upstream_artifacts + if upstream_artifact["taskId"]["task-reference"] != "<{}>".format(depname) + ] + job["worker"]["upstream-artifacts"] = upstream_artifacts_without_build + + yield job |