Bug 1898010 - Add x86 and ARM v7a android-startup-test tasks for Fenix and Focus r=ohorvath,ahal,RyanVM

Differential Revision: https://phabricator.services.mozilla.com/D211104
This commit is contained in:
Aaron Train 2024-06-04 13:07:52 +00:00
parent 47de7bd820
commit ba5a0fdc37
8 changed files with 293 additions and 25 deletions

View file

@ -0,0 +1,39 @@
# Google Cloud Documentation: https://cloud.google.com/sdk/gcloud/reference/firebase/test/android/run
# Flank Documentation: https://flank.github.io/flank/
gcloud:
results-bucket: fenix_test_artifacts
record-video: true
timeout: 15m
async: false
num-flaky-test-attempts: 1
app: /app/path
test: /test/path
auto-google-login: false
use-orchestrator: true
environment-variables:
clearPackageData: true
directories-to-pull:
- /sdcard/screenshots
performance-metrics: true
test-targets:
- class org.mozilla.fenix.ui.HistoryTest#verifyHistoryMenuWithHistoryItemsTest
- class org.mozilla.fenix.ui.SettingsSearchTest#verifyShowSearchSuggestionsToggleTest
- class org.mozilla.fenix.ui.CollectionTest#deleteCollectionTest
- class org.mozilla.fenix.ui.HistoryTest#noHistoryInPrivateBrowsingTest
- class org.mozilla.fenix.ui.NoNetworkAccessStartupTests#noNetworkConnectionStartupTest
device:
- model: redfin
version: 30
locale: en_US
flank:
project: GOOGLE_PROJECT
max-test-shards: 2
num-test-runs: 1
output-style: compact
full-junit-result: true

View file

@ -0,0 +1,39 @@
# Google Cloud Documentation: https://cloud.google.com/sdk/gcloud/reference/firebase/test/android/run
# Flank Documentation: https://flank.github.io/flank/
gcloud:
results-bucket: fenix_test_artifacts
record-video: true
timeout: 15m
async: false
num-flaky-test-attempts: 1
app: /app/path
test: /test/path
auto-google-login: false
use-orchestrator: true
environment-variables:
clearPackageData: true
directories-to-pull:
- /sdcard/screenshots
performance-metrics: true
test-targets:
- class org.mozilla.fenix.ui.HistoryTest#verifyHistoryMenuWithHistoryItemsTest
- class org.mozilla.fenix.ui.SettingsSearchTest#verifyShowSearchSuggestionsToggleTest
- class org.mozilla.fenix.ui.CollectionTest#deleteCollectionTest
- class org.mozilla.fenix.ui.HistoryTest#noHistoryInPrivateBrowsingTest
- class org.mozilla.fenix.ui.NoNetworkAccessStartupTests#noNetworkConnectionStartupTest
device:
- model: Pixel2
version: 30
locale: en_US
flank:
project: GOOGLE_PROJECT
max-test-shards: 2
num-test-runs: 1
output-style: compact
full-junit-result: true

View file

@ -0,0 +1,36 @@
# Google Cloud Documentation: https://cloud.google.com/sdk/gcloud/reference/firebase/test/android/run
# Flank Documentation: https://flank.github.io/flank/
gcloud:
results-bucket: focus_android_test_artifacts
record-video: true
timeout: 30m
async: false
num-flaky-test-attempts: 1
app: /app/path
test: /test/path
auto-google-login: false
use-orchestrator: true
environment-variables:
clearPackageData: true
directories-to-pull:
- /sdcard/screenshots
performance-metrics: true
test-targets:
- class org.mozilla.focus.activity.SearchTest#testBlankSearchDoesNothing
- class org.mozilla.focus.activity.EraseBrowsingDataTest#deleteHistoryOnRestartTest
device:
- model: redfin
version: 30
locale: en_US
flank:
project: GOOGLE_PROJECT
max-test-shards: 1
num-test-runs: 1
output-style: compact
full-junit-result: true

View file

@ -0,0 +1,36 @@
# Google Cloud Documentation: https://cloud.google.com/sdk/gcloud/reference/firebase/test/android/run
# Flank Documentation: https://flank.github.io/flank/
gcloud:
results-bucket: focus_android_test_artifacts
record-video: true
timeout: 30m
async: false
num-flaky-test-attempts: 1
app: /app/path
test: /test/path
auto-google-login: false
use-orchestrator: true
environment-variables:
clearPackageData: true
directories-to-pull:
- /sdcard/screenshots
performance-metrics: true
test-targets:
- class org.mozilla.focus.activity.SearchTest#testBlankSearchDoesNothing
- class org.mozilla.focus.activity.EraseBrowsingDataTest#deleteHistoryOnRestartTest
device:
- model: Pixel2
version: 30
locale: en_US
flank:
project: GOOGLE_PROJECT
max-test-shards: 1
num-test-runs: 1
output-style: compact
full-junit-result: true

View file

@ -34,19 +34,3 @@ def resolve_keys(config, tasks):
}
)
yield task
@transforms.add
def add_startup_test(config, tasks):
for task in tasks:
if "nightly" not in task["attributes"].get("build-type", ""):
yield task
continue
for dep_label, dep_task in config.kind_dependencies_tasks.items():
if (
dep_task.kind == "android-startup-test"
and dep_task.attributes["shipping-product"]
== task["attributes"]["shipping-product"]
):
task["dependencies"]["android-startup-test"] = dep_label
yield task

View file

@ -0,0 +1,28 @@
# 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()
@transforms.add
def add_android_startup_test_dependencies(config, jobs):
scheduled_tasks = [
t
for t in config.kind_dependencies_tasks.values()
if t.kind == "android-startup-test"
]
for job in jobs:
job_build_type = job["attributes"].get("build-type", "")
matching_tasks = [
t
for t in scheduled_tasks
if job_build_type in t.attributes.get("build-type", "")
]
if matching_tasks:
job.setdefault("dependencies", {}).update(
{t.label: t.label for t in matching_tasks}
)
yield job

View file

@ -8,6 +8,9 @@ transforms:
- gecko_taskgraph.transforms.job:transforms
- gecko_taskgraph.transforms.task:transforms
kind-dependencies:
- signing-apk
job-defaults:
description: Runs UI tests for sanity checking startup on Nightly
treeherder:
@ -24,17 +27,18 @@ job-defaults:
- name: public
path: /builds/worker/artifacts
type: directory
retry-exit-status: [20]
run:
using: run-commands
use-caches: false
run-on-projects: []
jobs:
fenix-arm-nightly-robo-opt:
fenix-arm64-v8a-nightly-robo-opt:
attributes:
build-type: fenix-nightly
shipping-product: fenix
description: Fenix Nightly Opt Robo Test (ARM)
description: Fenix Nightly Opt Robo Test (arm64-v8a)
dependencies:
signing: signing-apk-fenix-nightly
run:
@ -49,12 +53,12 @@ jobs:
- [wget, {artifact-reference: '<signing/public/build/target.arm64-v8a.apk>'}, '-O', app.apk]
- [python3, ../../../taskcluster/scripts/tests/test-lab.py, arm-start-test-robo, app.apk]
treeherder:
symbol: fenix-nightly(startup-arm-robo-opt)
symbol: fenix-nightly(startup-arm64-robo-opt)
worker:
env:
GOOGLE_PROJECT: moz-fenix
fenix-arm-nightly:
fenix-arm64-v8a-nightly:
attributes:
build-type: fenix-nightly-firebase
shipping-product: fenix
@ -74,12 +78,62 @@ jobs:
- [wget, {artifact-reference: '<signing-android-test/public/build/target.noarch.apk>'}, '-O', android-test.apk]
- [python3, ../../../taskcluster/scripts/tests/test-lab.py, arm-start-test, app.apk, --apk_test, android-test.apk]
treeherder:
symbol: fenix-nightly(startup-arm)
symbol: fenix-nightly(startup-arm64-v8a)
worker:
env:
GOOGLE_PROJECT: moz-fenix
focus-arm-nightly:
fenix-armeabi-v7a-nightly:
attributes:
build-type: fenix-nightly-firebase
shipping-product: fenix
dependencies:
signing: signing-apk-fenix-nightly-firebase
signing-android-test: signing-apk-fenix-android-test-nightly
run:
secrets:
- name: project/mobile/firefox-android/fenix/firebase
key: firebaseToken
path: .firebase_token.json
json: true
pre-commands:
- ["cd", "mobile/android/fenix"]
commands:
- [wget, {artifact-reference: '<signing/public/build/target.armeabi-v7a.apk>'}, '-O', app.apk]
- [wget, {artifact-reference: '<signing-android-test/public/build/target.noarch.apk>'}, '-O', android-test.apk]
- [python3, ../../../taskcluster/scripts/tests/test-lab.py, armeabi-v7a-start-test, app.apk, --apk_test, android-test.apk]
treeherder:
symbol: fenix-nightly(startup-armeabi-v7a)
worker:
env:
GOOGLE_PROJECT: moz-fenix
fenix-x86-nightly:
attributes:
build-type: fenix-nightly-firebase
shipping-product: fenix
dependencies:
signing: signing-apk-fenix-nightly-firebase
signing-android-test: signing-apk-fenix-android-test-nightly
run:
secrets:
- name: project/mobile/firefox-android/fenix/firebase
key: firebaseToken
path: .firebase_token.json
json: true
pre-commands:
- ["cd", "mobile/android/fenix"]
commands:
- [wget, {artifact-reference: '<signing/public/build/target.x86.apk>'}, '-O', app.apk]
- [wget, {artifact-reference: '<signing-android-test/public/build/target.noarch.apk>'}, '-O', android-test.apk]
- [python3, ../../../taskcluster/scripts/tests/test-lab.py, x86-start-test, app.apk, --apk_test, android-test.apk]
treeherder:
symbol: fenix-nightly(startup-x86)
worker:
env:
GOOGLE_PROJECT: moz-fenix
focus-arm64-v8a-nightly:
attributes:
build-type: focus-nightly-firebase
shipping-product: focus
@ -99,12 +153,62 @@ jobs:
- [wget, {artifact-reference: '<signed-apk-android-test/public/build/target.noarch.apk>'}, '-O', android-test.apk]
- [python3, ../../../taskcluster/scripts/tests/test-lab.py, arm-start-test, app.apk, --apk_test, android-test.apk]
treeherder:
symbol: focus-nightly(startup-arm)
symbol: focus-nightly(startup-arm64-v8a)
worker:
env:
GOOGLE_PROJECT: moz-focus-android
focus-arm-nightly-robo-opt:
focus-armeabi-v7a-nightly:
attributes:
build-type: focus-nightly-firebase
shipping-product: focus
dependencies:
signed-apk-debug-apk: signing-apk-focus-nightly-firebase
signed-apk-android-test: signing-apk-focus-android-test-nightly
run:
secrets:
- name: project/mobile/firefox-android/focus-android/firebase
key: firebaseToken
path: .firebase_token.json
json: true
pre-commands:
- ["cd", "mobile/android/focus-android"]
commands:
- [wget, {artifact-reference: '<signed-apk-debug-apk/public/build/target.armeabi-v7a.apk>'}, '-O', app.apk]
- [wget, {artifact-reference: '<signed-apk-android-test/public/build/target.noarch.apk>'}, '-O', android-test.apk]
- [python3, ../../../taskcluster/scripts/tests/test-lab.py, armeabi-v7a-start-test, app.apk, --apk_test, android-test.apk]
treeherder:
symbol: focus-nightly(startup-armeabi-v7a)
worker:
env:
GOOGLE_PROJECT: moz-focus-android
focus-x86-nightly:
attributes:
build-type: focus-nightly-firebase
shipping-product: focus
dependencies:
signed-apk-debug-apk: signing-apk-focus-nightly-firebase
signed-apk-android-test: signing-apk-focus-android-test-nightly
run:
secrets:
- name: project/mobile/firefox-android/focus-android/firebase
key: firebaseToken
path: .firebase_token.json
json: true
pre-commands:
- ["cd", "mobile/android/focus-android"]
commands:
- [wget, {artifact-reference: '<signed-apk-debug-apk/public/build/target.x86.apk>'}, '-O', app.apk]
- [wget, {artifact-reference: '<signed-apk-android-test/public/build/target.noarch.apk>'}, '-O', android-test.apk]
- [python3, ../../../taskcluster/scripts/tests/test-lab.py, x86-start-test, app.apk, --apk_test, android-test.apk]
treeherder:
symbol: focus-nightly(startup-x86)
worker:
env:
GOOGLE_PROJECT: moz-focus-android
focus-arm64-v8a-nightly-robo-opt:
attributes:
build-type: focus-nightly
shipping-product: focus
@ -123,7 +227,7 @@ jobs:
- [wget, {artifact-reference: '<signing/public/build/target.arm64-v8a.apk>'}, '-O', app.apk]
- [python3, ../../../taskcluster/scripts/tests/test-lab.py, arm-start-test-robo, app.apk]
treeherder:
symbol: focus-nightly(startup-arm-robo-opt)
symbol: focus-nightly(startup-arm64-robo-opt)
worker:
env:
GOOGLE_PROJECT: moz-focus-android

View file

@ -9,6 +9,7 @@ transforms:
- android_taskgraph.transforms.upstream_artifacts
- android_taskgraph.transforms.treeherder
- android_taskgraph.transforms.push_android_app
- android_taskgraph.transforms.startup_tests_deps
- gecko_taskgraph.transforms.task
kind-dependencies:
@ -19,6 +20,7 @@ jobs:
push-bundle:
description: Publish Fenix and Focus AABs
from-deps:
kinds: [signing-bundle]
with-attributes:
build-type:
- fenix-nightly