summaryrefslogtreecommitdiffstats
path: root/taskcluster/android_taskgraph/transforms/signing_android_app.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/signing_android_app.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 '')
-rw-r--r--taskcluster/android_taskgraph/transforms/signing_android_app.py110
1 files changed, 110 insertions, 0 deletions
diff --git a/taskcluster/android_taskgraph/transforms/signing_android_app.py b/taskcluster/android_taskgraph/transforms/signing_android_app.py
new file mode 100644
index 0000000000..aa2cbbb5b7
--- /dev/null
+++ b/taskcluster/android_taskgraph/transforms/signing_android_app.py
@@ -0,0 +1,110 @@
+# 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/.
+"""
+Apply some defaults and minor modifications to the jobs defined in the
+APK and AAB signing kinds.
+"""
+
+from taskgraph.transforms.base import TransformSequence
+from taskgraph.util.schema import resolve_keyed_by
+
+transforms = TransformSequence()
+
+PRODUCTION_SIGNING_BUILD_TYPES = [
+ "focus-nightly",
+ "focus-beta",
+ "focus-release",
+ "klar-release",
+ "fenix-nightly",
+ "fenix-beta",
+ "fenix-release",
+ "fenix-beta-mozillaonline",
+ "fenix-release-mozillaonline",
+]
+
+
+@transforms.add
+def resolve_keys(config, tasks):
+ for task in tasks:
+ for key in (
+ "index",
+ "signing-format",
+ "notify",
+ "treeherder.platform",
+ ):
+ resolve_keyed_by(
+ task,
+ key,
+ item_name=task["name"],
+ **{
+ "build-type": task["attributes"]["build-type"],
+ "level": config.params["level"],
+ },
+ )
+ yield task
+
+
+@transforms.add
+def set_worker_type(config, tasks):
+ for task in tasks:
+ worker_type = "linux-depsigning"
+ if (
+ str(config.params["level"]) == "3"
+ and task["attributes"]["build-type"] in PRODUCTION_SIGNING_BUILD_TYPES
+ ):
+ worker_type = "linux-signing"
+ task["worker-type"] = worker_type
+ yield task
+
+
+@transforms.add
+def add_signing_cert_scope(config, tasks):
+ scope_prefix = config.graph_config["scriptworker"]["scope-prefix"]
+ for task in tasks:
+ cert = "dep-signing"
+ if str(config.params["level"]) == "3":
+ if task["attributes"]["build-type"] in ("fenix-beta", "fenix-release"):
+ cert = "fennec-production-signing"
+ elif task["attributes"]["build-type"] in PRODUCTION_SIGNING_BUILD_TYPES:
+ cert = "production-signing"
+ task.setdefault("scopes", []).append(f"{scope_prefix}:signing:cert:{cert}")
+ yield task
+
+
+@transforms.add
+def set_index_job_name(config, tasks):
+ for task in tasks:
+ if task.get("index"):
+ task["index"]["job-name"] = task["attributes"]["build-type"]
+ yield task
+
+
+@transforms.add
+def set_signing_attributes(config, tasks):
+ for task in tasks:
+ task["attributes"]["signed"] = True
+ yield task
+
+
+@transforms.add
+def set_signing_format(config, tasks):
+ for task in tasks:
+ signing_format = task.pop("signing-format")
+ for upstream_artifact in task["worker"]["upstream-artifacts"]:
+ upstream_artifact["formats"] = [signing_format]
+ yield task
+
+
+@transforms.add
+def format_email(config, tasks):
+ version = config.params["version"]
+
+ for task in tasks:
+ if "notify" in task:
+ email = task["notify"].get("email")
+ if email:
+ email["subject"] = email["subject"].format(version=version)
+ email["content"] = email["content"].format(version=version)
+
+ yield task