summaryrefslogtreecommitdiffstats
path: root/taskcluster/android_taskgraph/transforms/upstream_artifacts.py
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-15 03:35:49 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-15 03:35:49 +0000
commitd8bbc7858622b6d9c278469aab701ca0b609cddf (patch)
treeeff41dc61d9f714852212739e6b3738b82a2af87 /taskcluster/android_taskgraph/transforms/upstream_artifacts.py
parentReleasing progress-linux version 125.0.3-1~progress7.99u1. (diff)
downloadfirefox-d8bbc7858622b6d9c278469aab701ca0b609cddf.tar.xz
firefox-d8bbc7858622b6d9c278469aab701ca0b609cddf.zip
Merging upstream version 126.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'taskcluster/android_taskgraph/transforms/upstream_artifacts.py')
-rw-r--r--taskcluster/android_taskgraph/transforms/upstream_artifacts.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/taskcluster/android_taskgraph/transforms/upstream_artifacts.py b/taskcluster/android_taskgraph/transforms/upstream_artifacts.py
new file mode 100644
index 0000000000..895719d411
--- /dev/null
+++ b/taskcluster/android_taskgraph/transforms/upstream_artifacts.py
@@ -0,0 +1,55 @@
+# 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/.
+
+from taskgraph.transforms.base import TransformSequence
+from taskgraph.util.dependencies import get_dependencies
+
+from android_taskgraph.util.scriptworker import generate_beetmover_upstream_artifacts
+
+transforms = TransformSequence()
+
+
+def _get_task_type(dep_kind):
+ if dep_kind.startswith("build-"):
+ return "build"
+ elif dep_kind.startswith("signing-"):
+ return "signing"
+ return dep_kind
+
+
+@transforms.add
+def build_upstream_artifacts(config, tasks):
+ for task in tasks:
+ worker_definition = {
+ "upstream-artifacts": [],
+ }
+ if "artifact_map" in task["attributes"]:
+ # Beetmover-apk tasks use declarative artifacts.
+ locale = task["attributes"].get("locale")
+ build_type = task["attributes"]["build-type"]
+ worker_definition[
+ "upstream-artifacts"
+ ] = generate_beetmover_upstream_artifacts(config, task, build_type, locale)
+ else:
+ for dep in get_dependencies(config, task):
+ paths = list(dep.attributes.get("artifacts", {}).values())
+ paths.extend(
+ [
+ apk_metadata["name"]
+ for apk_metadata in dep.attributes.get("apks", {}).values()
+ ]
+ )
+ if dep.attributes.get("aab"):
+ paths.extend([dep.attributes.get("aab")])
+ if paths:
+ worker_definition["upstream-artifacts"].append(
+ {
+ "taskId": {"task-reference": f"<{dep.kind}>"},
+ "taskType": _get_task_type(dep.kind),
+ "paths": sorted(paths),
+ }
+ )
+
+ task.setdefault("worker", {}).update(worker_definition)
+ yield task