diff --git a/scripts/taler-monitoring/android-test/README.md b/scripts/taler-monitoring/android-test/README.md index 16be18c..fc02faf 100644 --- a/scripts/taler-monitoring/android-test/README.md +++ b/scripts/taler-monitoring/android-test/README.md @@ -36,15 +36,19 @@ Runs several smokes so a single odd developer build cannot be the only sample: | Variant | What | |---------|------| -| **published** | F-Droid stable APK (`net.taler.wallet.fdroid` 1.6.1 / 854) | -| **stable-self** | Rebuild tag `wallet-1.6.1` on this host (same source as stable) | -| **master** | Rebuild `origin/master` | +| Order | Variant | What | +|------|---------|------| +| **1 (gate)** | **stable-self** | Rebuild tag `wallet-1.6.1` on this host | +| **2 (gate)** | **published** | F-Droid stable APK (`net.taler.wallet.fdroid` 1.6.1 / 854) | +| **3** | **master** | Rebuild `origin/master` (only if gates pass when `FAIL_FAST=1`) | + +**Default:** `FAIL_FAST=1` — first non-zero gate stops the matrix (no master if stable fails). ```bash ./run-android-variant-matrix.sh STACK=goa ./run-android-variant-matrix.sh -VARIANTS=master,stable-self ./run-android-variant-matrix.sh -VARIANTS=published,stable-self,master,fix GUI=0 ./run-android-variant-matrix.sh +# only the hard gates: +VARIANTS=stable-self,published FAIL_FAST=1 ./run-android-variant-matrix.sh ``` Artifacts + `SUMMARY.txt` under `out-matrix-/`. diff --git a/scripts/taler-monitoring/android-test/lib_android_env.sh b/scripts/taler-monitoring/android-test/lib_android_env.sh index ad209de..670d796 100644 --- a/scripts/taler-monitoring/android-test/lib_android_env.sh +++ b/scripts/taler-monitoring/android-test/lib_android_env.sh @@ -68,8 +68,9 @@ export EMULATOR_GPU : "${EMULATOR_CORES:=2}" # If no adb device: start headless AVD (0 = require phone/manual emulator) : "${AUTO_START_EMULATOR:=1}" -: "${EMULATOR_BOOT_TIMEOUT:=180}" +: "${EMULATOR_BOOT_TIMEOUT:=360}" : "${EMULATOR_LOG:=/tmp/taler-android-emulator.log}" +: "${EMULATOR_NO_SNAPSHOT:=1}" android_adb_serial() { adb devices 2>/dev/null | awk '/\tdevice$/{print $1; exit}' @@ -89,6 +90,10 @@ android_emulator_args() { # Avoid Qt trying to open a display on servers export QT_QPA_PLATFORM="${QT_QPA_PLATFORM:-offscreen}" fi + # Broken default_boot snapshots leave adb offline forever — cold boot by default. + if [ "${EMULATOR_NO_SNAPSHOT:-1}" = "1" ]; then + args+=( -no-snapshot -no-snapshot-load -no-snapshot-save ) + fi if [ -n "${EMULATOR_MEMORY:-}" ]; then args+=( -memory "$EMULATOR_MEMORY" ) fi diff --git a/scripts/taler-monitoring/android-test/run-android-variant-matrix.sh b/scripts/taler-monitoring/android-test/run-android-variant-matrix.sh index 50d31a8..a92d739 100755 --- a/scripts/taler-monitoring/android-test/run-android-variant-matrix.sh +++ b/scripts/taler-monitoring/android-test/run-android-variant-matrix.sh @@ -2,10 +2,10 @@ # Run Android wallet smoke against **several build variants** so a single # "weird" developer tree or a bad local build cannot be the only sample. # -# Default matrix: -# 1) **published** — F-Droid stable APK (bit-for-bit what users install) -# 2) **stable-self** — rebuild the same release **tag** as published (self-build) -# 3) **master** — rebuild origin/master (tip / CI-style) +# Default matrix (gate order — fail → hard stop when FAIL_FAST=1): +# 1) **stable-self** — rebuild release **tag** (same source as published) +# 2) **published** — F-Droid stable APK (what users install) +# 3) **master** — rebuild origin/master (only if 1–2 pass with FAIL_FAST) # # Why stable-self in addition to published? # Rare, but a published APK *or* a one-off developer build can be odd @@ -40,8 +40,9 @@ ROOT=$(cd "$(dirname "$0")" && pwd) : "${STABLE_APK_NAME:=net.taler.wallet.fdroid_854.apk}" : "${MASTER_BRANCH:=master}" : "${FIX_BRANCH:=dev/hernani-inference/fix-bank-withdraw-auto-exchange}" -: "${VARIANTS:=published,stable-self,master}" -: "${FAIL_FAST:=0}" +# Gate: stable self-build → published F-Droid; then master. FAIL_FAST default on. +: "${VARIANTS:=stable-self,published,master}" +: "${FAIL_FAST:=1}" : "${GUI:=0}" : "${STACK:=auto}"