Bug 1890689 accumulate input in LargerReceiverBlockSizeThanDesiredBuffering GTest...
[gecko.git] / taskcluster / android_taskgraph / transforms / signing_android_app.py
blobaa2cbbb5b76a8d02ce273ec98ccad72468688567
1 # This Source Code Form is subject to the terms of the Mozilla Public
2 # License, v. 2.0. If a copy of the MPL was not distributed with this
3 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 """
5 Apply some defaults and minor modifications to the jobs defined in the
6 APK and AAB signing kinds.
7 """
9 from taskgraph.transforms.base import TransformSequence
10 from taskgraph.util.schema import resolve_keyed_by
12 transforms = TransformSequence()
14 PRODUCTION_SIGNING_BUILD_TYPES = [
15 "focus-nightly",
16 "focus-beta",
17 "focus-release",
18 "klar-release",
19 "fenix-nightly",
20 "fenix-beta",
21 "fenix-release",
22 "fenix-beta-mozillaonline",
23 "fenix-release-mozillaonline",
27 @transforms.add
28 def resolve_keys(config, tasks):
29 for task in tasks:
30 for key in (
31 "index",
32 "signing-format",
33 "notify",
34 "treeherder.platform",
36 resolve_keyed_by(
37 task,
38 key,
39 item_name=task["name"],
40 **{
41 "build-type": task["attributes"]["build-type"],
42 "level": config.params["level"],
45 yield task
48 @transforms.add
49 def set_worker_type(config, tasks):
50 for task in tasks:
51 worker_type = "linux-depsigning"
52 if (
53 str(config.params["level"]) == "3"
54 and task["attributes"]["build-type"] in PRODUCTION_SIGNING_BUILD_TYPES
56 worker_type = "linux-signing"
57 task["worker-type"] = worker_type
58 yield task
61 @transforms.add
62 def add_signing_cert_scope(config, tasks):
63 scope_prefix = config.graph_config["scriptworker"]["scope-prefix"]
64 for task in tasks:
65 cert = "dep-signing"
66 if str(config.params["level"]) == "3":
67 if task["attributes"]["build-type"] in ("fenix-beta", "fenix-release"):
68 cert = "fennec-production-signing"
69 elif task["attributes"]["build-type"] in PRODUCTION_SIGNING_BUILD_TYPES:
70 cert = "production-signing"
71 task.setdefault("scopes", []).append(f"{scope_prefix}:signing:cert:{cert}")
72 yield task
75 @transforms.add
76 def set_index_job_name(config, tasks):
77 for task in tasks:
78 if task.get("index"):
79 task["index"]["job-name"] = task["attributes"]["build-type"]
80 yield task
83 @transforms.add
84 def set_signing_attributes(config, tasks):
85 for task in tasks:
86 task["attributes"]["signed"] = True
87 yield task
90 @transforms.add
91 def set_signing_format(config, tasks):
92 for task in tasks:
93 signing_format = task.pop("signing-format")
94 for upstream_artifact in task["worker"]["upstream-artifacts"]:
95 upstream_artifact["formats"] = [signing_format]
96 yield task
99 @transforms.add
100 def format_email(config, tasks):
101 version = config.params["version"]
103 for task in tasks:
104 if "notify" in task:
105 email = task["notify"].get("email")
106 if email:
107 email["subject"] = email["subject"].format(version=version)
108 email["content"] = email["content"].format(version=version)
110 yield task