119 lines
3.5 KiB
YAML
119 lines
3.5 KiB
YAML
# Firebase Test Lab Device Matrix Configuration
|
|
# =============================================================================
|
|
# This file defines the device matrix for Firebase Test Lab test runs.
|
|
# Used by the gcloud CLI to specify which devices, orientations, and locales
|
|
# to test against.
|
|
#
|
|
# Usage:
|
|
# gcloud firebase test android run \
|
|
# --type <instrumentation|robo> \
|
|
# --app app/build/outputs/apk/prod/release/app-prod-release.apk \
|
|
# --test app/build/outputs/apk/androidTest/prod/debug/app-prod-debug-androidTest.apk \
|
|
# --device model=...,version=...,locale=...,orientation=...
|
|
#
|
|
# Reference: https://cloud.google.com/sdk/gcloud/reference/firebase/test/android/run
|
|
# =============================================================================
|
|
|
|
# Device matrix dimensions
|
|
# Each device runs with each orientation and locale combination
|
|
devices:
|
|
# Pixel 6 - Primary target device (API 33)
|
|
- model: Pixel6
|
|
version: 33
|
|
locales:
|
|
- en_US
|
|
- es_ES
|
|
orientations:
|
|
- portrait
|
|
- landscape
|
|
|
|
# Pixel 4 - Older Pixel device (API 30)
|
|
- model: Pixel4
|
|
version: 30
|
|
locales:
|
|
- en_US
|
|
- es_ES
|
|
orientations:
|
|
- portrait
|
|
- landscape
|
|
|
|
# Samsung Galaxy S21 - Popular Samsung device (API 31)
|
|
- model: GalaxyS21
|
|
version: 31
|
|
locales:
|
|
- en_US
|
|
- es_ES
|
|
orientations:
|
|
- portrait
|
|
- landscape
|
|
|
|
# Xiaomi Redmi Note 8 - Budget device (API 29)
|
|
- model: RedmiNote8
|
|
version: 29
|
|
locales:
|
|
- en_US
|
|
- es_ES
|
|
orientations:
|
|
- portrait
|
|
- landscape
|
|
|
|
# Low-end device - Minimum spec target (API 28, 2GB RAM equivalent)
|
|
- model: AquestM2
|
|
version: 28
|
|
locales:
|
|
- en_US
|
|
- es_ES
|
|
orientations:
|
|
- portrait
|
|
- landscape
|
|
|
|
# Robo test configuration
|
|
robo:
|
|
# Maximum time for robo crawl in seconds (default: 540s = 9min)
|
|
max_crawl_time: 600
|
|
# Number of steps for robo crawl (default: unlimited)
|
|
max_steps: 200
|
|
# App-specific login credentials for auto-login during crawl
|
|
# Credentials are stored securely in Cloud Key Management
|
|
# Set via environment variable: ROBO_SCRIPT_SOURCE
|
|
# Or provide a robo_script.json file for custom crawl paths
|
|
robo_script: robo_script.json
|
|
# Enable recording of test video
|
|
record_video: true
|
|
# Enable performance metrics collection
|
|
performance_metrics: true
|
|
# Number of test accounts to use (redundant sign-in handling)
|
|
# test_accounts:
|
|
# - username: ${ROBO_USERNAME}
|
|
# password: ${ROBO_PASSWORD}
|
|
|
|
# Instrumentation test configuration
|
|
instrumentation:
|
|
# Test runner class (AndroidJUnitRunner by default)
|
|
test_runner: androidx.test.runner.AndroidJUnitRunner
|
|
# Test APK to use
|
|
test_apk: app/build/outputs/apk/androidTest/prod/debug/app-prod-debug-androidTest.apk
|
|
# Test APK app APK
|
|
app_apk: app/build/outputs/apk/prod/release/app-prod-release.apk
|
|
# Enable recording of test video
|
|
record_video: true
|
|
# Enable performance metrics collection
|
|
performance_metrics: true
|
|
# Timeout per test in seconds (default: 300s = 5min)
|
|
test_timeout: 300
|
|
# Number of test shards (parallel execution across devices)
|
|
num_flaky_test_attempts: 2
|
|
# Fail fast - stop after first failure
|
|
fail_fast: false
|
|
|
|
# Results storage
|
|
results:
|
|
# Cloud Storage bucket for test results
|
|
# Format: gs://<project-id>-test-lab-<random-suffix>
|
|
# If not specified, Firebase creates one automatically
|
|
results_bucket: ""
|
|
# Directory within the bucket for results
|
|
results_dir: firebase-test-lab
|
|
# History name for grouping test runs in Firebase Console
|
|
history_name: "Kordant Android CI"
|