summaryrefslogtreecommitdiffstats
path: root/taskcluster/taskgraph/transforms/beetmover_source.py
diff options
context:
space:
mode:
Diffstat (limited to 'taskcluster/taskgraph/transforms/beetmover_source.py')
-rw-r--r--taskcluster/taskgraph/transforms/beetmover_source.py36
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