diff options
Diffstat (limited to 'taskcluster/android_taskgraph/transforms/ui_tests.py')
-rw-r--r-- | taskcluster/android_taskgraph/transforms/ui_tests.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/taskcluster/android_taskgraph/transforms/ui_tests.py b/taskcluster/android_taskgraph/transforms/ui_tests.py new file mode 100644 index 0000000000..0e447b76d4 --- /dev/null +++ b/taskcluster/android_taskgraph/transforms/ui_tests.py @@ -0,0 +1,65 @@ +# 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 + +transforms = TransformSequence() + + +_ANDROID_TASK_NAME_PREFIX = "android-" + + +@transforms.add +def set_component_attribute(config, tasks): + for task in tasks: + component_name = task.pop("component", None) + if not component_name: + task_name = task["name"] + if task_name.startswith(_ANDROID_TASK_NAME_PREFIX): + component_name = task_name[len(_ANDROID_TASK_NAME_PREFIX) :] + else: + raise NotImplementedError( + f"Cannot determine component name from task {task_name}" + ) + + attributes = task.setdefault("attributes", {}) + attributes["component"] = component_name + + yield task + + +@transforms.add +def define_ui_test_command_line(config, tasks): + for task in tasks: + run = task.setdefault("run", {}) + post_gradlew = run.setdefault("post-gradlew", []) + post_gradlew.append( + [ + "automation/taskcluster/androidTest/ui-test.sh", + task["attributes"]["component"], + "arm", + "1", + ] + ) + + yield task + + +@transforms.add +def define_treeherder_symbol(config, tasks): + for task in tasks: + treeherder = task.setdefault("treeherder") + treeherder.setdefault("symbol", f"{task['attributes']['component']}(unit)") + + yield task + + +@transforms.add +def define_description(config, tasks): + for task in tasks: + task.setdefault( + "description", + f"Run unit/ui tests on device for {task['attributes']['component']}", + ) + yield task |