[fenix] Taskgraph changes to allow running UI tests on nightly builds (https://github...
[gecko.git] / mobile / android / fenix / taskcluster / fenix_taskgraph / transforms / signing.py
blob428bde612af140a689bf75ba26b4e26f37b6d90b
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 build
6 kind.
7 """
9 from __future__ import absolute_import, print_function, unicode_literals
11 from taskgraph.transforms.base import TransformSequence
12 from taskgraph.util.schema import resolve_keyed_by
15 transforms = TransformSequence()
18 @transforms.add
19 def resolve_keys(config, tasks):
20 for task in tasks:
21 for key in ("run-on-tasks-for",):
22 resolve_keyed_by(
23 task,
24 key,
25 item_name=task["name"],
26 **{
27 'build-type': task["attributes"]["build-type"],
28 'level': config.params["level"],
29 'tasks-for': config.params["tasks_for"],
32 yield task
34 @transforms.add
35 def set_worker_type(config, tasks):
36 for task in tasks:
37 worker_type = "dep-signing"
38 if (
39 str(config.params["level"]) == "3"
40 and task["attributes"]["build-type"]
41 in ("nightly", "beta", "release", "android-test-nightly")
42 and config.params["tasks_for"] in ("cron", "github-release", "action")
44 worker_type = "signing"
45 task["worker-type"] = worker_type
46 yield task
49 @transforms.add
50 def set_signing_type(config, tasks):
51 for task in tasks:
52 signing_type = "dep-signing"
53 if (
54 str(config.params["level"]) == "3"
55 and config.params["tasks_for"] in ("cron", "github-release", "action")
57 if task["attributes"]["build-type"] in ("beta", "release"):
58 signing_type = "fennec-production-signing"
59 elif task["attributes"]["build-type"] in ("nightly", "android-test-nightly"):
60 signing_type = "production-signing"
61 task.setdefault("worker", {})["signing-type"] = signing_type
62 yield task
65 @transforms.add
66 def set_index(config, tasks):
67 for task in tasks:
68 index = {}
69 if (
70 config.params["tasks_for"] in ("cron", "github-release", "action")
71 and task["attributes"]["build-type"]
72 in ("nightly", "debut", "nightly-simulation", "beta", "release")
74 index["type"] = "signing"
75 task["index"] = index
76 yield task
79 @transforms.add
80 def set_signing_attributes(config, tasks):
81 for task in tasks:
82 task["attributes"]["signed"] = True
83 yield task
86 @transforms.add
87 def set_signing_format(config, tasks):
88 for task in tasks:
89 signing_format = task.pop("signing-format")
90 for upstream_artifact in task["worker"]["upstream-artifacts"]:
91 upstream_artifact["formats"] = [signing_format]
92 yield task