diff --git a/scripts/taler-monitoring/android-test/GUI-AUTOMATION-NOTES.md b/scripts/taler-monitoring/android-test/GUI-AUTOMATION-NOTES.md index 0d418be..8326ac9 100644 --- a/scripts/taler-monitoring/android-test/GUI-AUTOMATION-NOTES.md +++ b/scripts/taler-monitoring/android-test/GUI-AUTOMATION-NOTES.md @@ -245,15 +245,15 @@ Scripts **today** implement Android only; they should honour: | Variant | Source | Severity | Purpose | |---------|--------|----------|---------| -| **stable-self** | stable tag rebuilt | WARN | Our rebuild — never hard-blocks | +| **stable-self** | **only** rebuild of current stable tag | WARN | Self-build vs published for **one** release | | **published** | F-Droid current APK | **≤14d → BLOCKER**, else WARN | What users install | -| **older / milestones** | tags ~**3 / 6 / 9 / 12 mo** | **always WARN** | Long-horizon regression, if tags exist | -| **master** | `origin/master` | WARN | Tip — never hard-blocks | +| **older / milestones** | F-Droid APK ~**3 / 6 / 9 / 12 mo** | **always WARN** | No self-build of old tags | +| **master** | `origin/master` rebuild | WARN | Tip — never hard-blocks | | **fix** (optional) | inference branch | soft | GOA automation fixes | -**Blocker window:** only releases ≤ 14 days. -**Milestones:** nearest tags to 90/180/270/365 days (±50d) — warn only. -Default matrix: `stable-self,published,older,master`. +**Self-build:** current stable only (plus master/fix if requested) — not older releases. +**Blocker window:** releases ≤ 14 days. +**Milestones:** nearest tags to 90/180/270/365d with a still-hosted F-Droid APK. --- diff --git a/scripts/taler-monitoring/android-test/README.md b/scripts/taler-monitoring/android-test/README.md index bb66bce..7b2b0e3 100644 --- a/scripts/taler-monitoring/android-test/README.md +++ b/scripts/taler-monitoring/android-test/README.md @@ -38,14 +38,15 @@ Runs several smokes so a single odd developer build cannot be the only sample: |---------|------| | Order | Variant | Severity | What | |------|---------|----------|------| -| **1** | **stable-self** | WARN | Rebuild current stable tag | +| **1** | **stable-self** | WARN | **Only** self-build: current stable tag | | **2** | **published** | age ≤14d → **BLOCKER**, else WARN | Current F-Droid APK | -| **3** | **older / milestones** | **always WARN** | Tags nearest **3 / 6 / 9 / 12 months** (if available) | +| **3** | **older / milestones** | **always WARN** | F-Droid APKs nearest **3 / 6 / 9 / 12 months** (if still hosted) — **no self-build** | | **4** | **master** | WARN | Rebuild `origin/master` | -**Milestones:** `MILESTONE_DAYS="90 180 270 365"` (± `MILESTONE_TOLERANCE_DAYS=50`). -Failures there are warnings only — never hard blockers. -**Young releases only** (≤ 14 days): hard blocker on fail. +**Self-build policy:** only **current published stable** (`stable-self`) + optional **master**. +Historical versions: published F-Droid APK only; skip if APK gone. +**Milestones:** `MILESTONE_DAYS="90 180 270 365"` (±50d), warn only. +**Young releases** (≤ 14 days): hard blocker on fail. ```bash ./run-android-variant-matrix.sh 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 976df43..3a2fe30 100755 --- a/scripts/taler-monitoring/android-test/run-android-variant-matrix.sh +++ b/scripts/taler-monitoring/android-test/run-android-variant-matrix.sh @@ -67,7 +67,8 @@ export SERIAL ANDROID_SERIAL echo "device: $SERIAL" | tee -a "$SUMMARY" # --- expand VARIANTS (token "older" → concrete older-pub / older-self entries) --- -# Append one older release as WARN-only (pub APK if possible, else self-build). +# Append one older release as WARN-only — **F-Droid APK only** (no self-build). +# Returns 0 if queued, 1 if skipped (no published APK). append_older_warn() { local t="$1" age="$2" target="${3:-}" local vn meta apk_vc apk_url @@ -83,11 +84,13 @@ append_older_warn() { apk_url="${meta#*|}" if fdroid_apk_exists "$apk_url"; then out+=("older-pub:${vn}:${apk_vc}:warn") - return + return 0 fi - echo " (no F-Droid APK for $vn — self-build only)" | tee -a "$SUMMARY" + echo " SKIP $t — no F-Droid APK at ${apk_url:-?} (self-build only for current stable)" | tee -a "$SUMMARY" + else + echo " SKIP $t — cannot map F-Droid versionCode (self-build only for current stable)" | tee -a "$SUMMARY" fi - out+=("older-self:${t}:warn") + return 1 } expand_variants() { @@ -101,16 +104,20 @@ expand_variants() { [ -n "$v" ] || continue if [ "$v" = "older" ] || [ "$v" = "older-releases" ] || [ "$v" = "milestones" ]; then [ "$INCLUDE_OLDER" = "1" ] || continue - # Prefer 3/6/9/12-month samples (always WARN). Fall back: nothing if no tags nearby. - local found=0 + # 3/6/9/12-month samples: published APK only, always WARN. + local found=0 queued=0 while read -r t age target; do [ -n "$t" ] || continue [ "$t" = "$STABLE_TAG" ] && continue - append_older_warn "$t" "$age" "$target" found=1 + if append_older_warn "$t" "$age" "$target"; then + queued=$((queued + 1)) + fi done < <(select_milestone_tags "$STABLE_TAG" 2>/dev/null || true) if [ "$found" = "0" ]; then echo " (no milestone tags within ±${MILESTONE_TOLERANCE_DAYS}d of $MILESTONE_DAYS)" | tee -a "$SUMMARY" + elif [ "$queued" = "0" ]; then + echo " (milestone tags found but none still on F-Droid — no older APK smokes)" | tee -a "$SUMMARY" fi else out+=("$v") @@ -278,24 +285,20 @@ for raw in "${VLIST[@]}"; do v="$label" ;; older-self:*) - # older-self:TAG:SEV or older-self:TAG - IFS=':' read -r _ tag sev <<<"$v" - : "${sev:=$(severity_for_tag "$tag")}" - label="older-self-${tag}" - age=$(release_age_days "$tag" 2>/dev/null || echo "?") - echo "older self-build $tag age_days=$age severity=$sev" | tee -a "$SUMMARY" - run_selfbuild "$label" "$tag" "$sev" || rc=$? - v="$label" + # Explicit older-self is disabled by policy (self-build = current stable only). + echo "SKIP $v — self-build only for current stable ($STABLE_TAG); use older-pub or published" | tee -a "$SUMMARY" + RESULTS+=("$v:SKIP(no-selfbuild-older)") + continue ;; *) - # raw git ref — warn unless looks like wallet-X.Y and young + # raw git ref: only master-like / fix via named tokens; bare wallet-* tags → no self-build if [[ "$v" =~ ^wallet-[0-9] ]]; then - sev=$(severity_for_tag "$v") - run_selfbuild "ref-${v}" "$v" "$sev" || rc=$? - else - sev=warn - run_selfbuild "ref-${v//\//-}" "$v" warn || rc=$? + echo "SKIP self-build $v — only current stable self-build ($STABLE_TAG) is enabled" | tee -a "$SUMMARY" + RESULTS+=("$v:SKIP(no-selfbuild-older)") + continue fi + sev=warn + run_selfbuild "ref-${v//\//-}" "$v" warn || rc=$? ;; esac