# 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 \ # --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://-test-lab- # 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"