Files
Kordant/android/firebase-test-lab/test_matrix_config.yaml
2026-06-01 12:58:34 -04:00

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"