Browse Source

cron-job-ui-screenshots (#12423)

Co-authored-by: isabel rios <isabelrios@MacBook-Pro-de-isabel-2.local>
master
isabelrios 1 year ago
committed by GitHub
parent
commit
5b61b44f1a
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 118 additions and 32 deletions
  1. +6
    -0
      .cron.yml
  2. +4
    -3
      app/src/androidTest/java/org/mozilla/fenix/screenshots/MenuScreenShotTest.kt
  3. +55
    -0
      automation/taskcluster/androidTest/flank-x86-screenshots-tests.yml
  4. +2
    -0
      automation/taskcluster/androidTest/ui-test.sh
  5. +41
    -29
      taskcluster/ci/ui-test/kind.yml
  6. +10
    -0
      taskcluster/fenix_taskgraph/target_tasks.py

+ 6
- 0
.cron.yml View File

@@ -32,3 +32,9 @@ jobs:
treeherder-symbol: bump-ac
target-tasks-method: bump_android_components
when: [{hour: 14, minute: 0}]
- name: screenshots
job:
type: decision-task
treeherder-symbol: screenshots-D
target-tasks-method: screenshots
when: [{weekday: 'Monday', hour: 10, minute: 0}]

+ 4
- 3
app/src/androidTest/java/org/mozilla/fenix/screenshots/MenuScreenShotTest.kt View File

@@ -92,9 +92,10 @@ class MenuScreenShotTest : ScreenshotTest() {
Screengrab.screenshot("SettingsSubMenuDefaultBrowserRobot_settings-default-browser")
mDevice.pressBack()

settingsTP()
Screengrab.screenshot("settings-enhanced-tp")
mDevice.pressBack()
// Disabled for Pixel 2
// settingsTP()
// Screengrab.screenshot("settings-enhanced-tp")
// mDevice.pressBack()

loginsAndPassword()
Screengrab.screenshot("SettingsSubMenuLoginsAndPasswords-settings-logins-passwords")


+ 55
- 0
automation/taskcluster/androidTest/flank-x86-screenshots-tests.yml View File

@@ -0,0 +1,55 @@
# gcloud args match the official gcloud cli
# https://cloud.google.com/sdk/gcloud/reference/firebase/test/android/run
gcloud:
results-bucket: fenix_test_artifacts
record-video: true

# The maximum possible testing time is 30m on physical devices and 60m on virtual devices.
timeout: 20m
# will start test then close socket. no reports will be generated.
# to retrieve results later, use the "refresh" command
# reports will be generated from /results/matrix_ids.json
#async: true
# will start test then leave socket open. reports will be published
# to /results
# see: https://github.com/TestArmada/flank/issues/339
async: false

# results-history-name
# by default, set to app name
# declare results-history-name to create a separate dropdown menu in Firebase
# see: https://github.com/TestArmada/flank/issues/341
#results-history-name: tmp_parallel

# The number of times a test execution should be re-attempted if one or more failures occur.
# The maximum number of reruns allowed is 10. Default is 0, which implies no reruns.
num-flaky-test-attempts: 1

# test and app are the only required args
app: /app/path
test: /test/path

auto-google-login: true
use-orchestrator: true
environment-variables:
clearPackageData: true
directories-to-pull:
- /sdcard/screenshots
performance-metrics: true

test-targets:
- package org.mozilla.fenix.screenshots

device:
- model: Pixel2
version: 28

flank:
project: GOOGLE_PROJECT
# test shards - the amount of groups to split the test suite into
# set to -1 to use one shard per test.
max-test-shards: 1
# num-test-runs: the amount of times to run the tests.
# 1 runs the tests once. 10 runs all the tests 10x
num-test-runs: 1


+ 2
- 0
automation/taskcluster/androidTest/ui-test.sh View File

@@ -80,6 +80,8 @@ elif [[ "${device_type}" == "x86-start-test" ]]; then
flank_template="${PATH_TEST}/flank-x86-start-test.yml"
elif [[ "${device_type}" == "arm-start-test" ]]; then
flank_template="${PATH_TEST}/flank-armeabi-v7a-start-test.yml"
elif [[ "${device_type}" == "x86-screenshots-tests" ]]; then
flank_template="${PATH_TEST}/flank-x86-screenshots-tests.yml"
else
echo "FAILURE: flank config file not found!"
exitcode=1


+ 41
- 29
taskcluster/ci/ui-test/kind.yml View File

@@ -11,44 +11,56 @@ transforms:

job-defaults:
attributes:
build-type: debug
code-review: true
retrigger: true
dependencies:
signing: signing-debug
signing-android-test: signing-android-test-debug
include-pull-request-number: true
run:
commands:
- [wget, {artifact-reference: '<signing/public/build/x86/geckoNightly/target.apk>'}, '-O', app.apk]
- [wget, {artifact-reference: '<signing-android-test/public/build/noarch/geckoNightly/target.apk>'}, '-O', android-test.apk]
secrets:
- name: project/mobile/fenix/firebase
key: firebaseToken
path: .firebase_token.json
json: true
using: run-commands
use-caches: false
treeherder:
kind: test
platform: 'ui-test/opt'
tier: 2
worker:
docker-image: {in-tree: ui-tests}
max-run-time: 7200
env:
GOOGLE_APPLICATION_CREDENTIALS: '.firebase_token.json'
GOOGLE_PROJECT: moz-fenix
artifacts:
- name: public
path: /builds/worker/artifacts
type: directory
worker-type: b-android

jobs:
x86-debug:
attributes:
build-type: debug
dependencies:
signing: signing-debug
signing-android-test: signing-android-test-debug
description: Test Fenix
include-pull-request-number: true
run-on-tasks-for: [github-pull-request, github-push]
run:
commands:
- [wget, {artifact-reference: '<signing/public/build/x86/geckoNightly/target.apk>'}, '-O', app.apk]
- [wget, {artifact-reference: '<signing-android-test/public/build/noarch/geckoNightly/target.apk>'}, '-O', android-test.apk]
- [automation/taskcluster/androidTest/ui-test.sh, x86, app.apk, android-test.apk, '50']
secrets:
- name: project/mobile/fenix/firebase
key: firebaseToken
path: .firebase_token.json
json: true
using: run-commands
use-caches: false
treeherder:
kind: test
platform: 'ui-test/opt'
symbol: debug(ui-test-x86)
tier: 2
worker:
docker-image: {in-tree: ui-tests}
max-run-time: 7200
env:
GOOGLE_APPLICATION_CREDENTIALS: '.firebase_token.json'
GOOGLE_PROJECT: moz-fenix
artifacts:
- name: public
path: /builds/worker/artifacts
type: directory
worker-type: b-android
screenshots-x86:
attributes:
screenshots: true
description: Run UI screenshots tests to keep them up to date
run-on-tasks-for: []
run:
commands:
- [automation/taskcluster/androidTest/ui-test.sh, x86-screenshots-tests, app.apk, android-test.apk, '-1']
treeherder:
symbol: debug(screenshots-x86)

+ 10
- 0
taskcluster/fenix_taskgraph/target_tasks.py View File

@@ -73,3 +73,13 @@ def target_tasks_bump_android_components(full_task_graph, parameters, graph_conf
return task.attributes.get("bump-type", "") == "android-components"

return [l for l, t in full_task_graph.tasks.iteritems() if filter(t, parameters)]


@_target_task("screenshots")
def target_tasks_screnshots(full_task_graph, parameters, graph_config):
"""Select the set of tasks required to generate screenshots on a real device."""

def filter(task, parameters):
return task.attributes.get("screenshots", False)

return [l for l, t in full_task_graph.tasks.iteritems() if filter(t, parameters)]

Loading…
Cancel
Save