monitoring: use inference fix branch by default; harden GUI chain ANR wait
Default BUILD branch fix-bank-withdraw-auto-exchange; dismiss System UI ANR before confirm taps so low-RAM emulators fail less uselessly.
This commit is contained in:
parent
2dfd40558a
commit
92695c0ee3
6 changed files with 55 additions and 12 deletions
|
|
@ -130,15 +130,30 @@ Open issues mirrored from upstream `ISSUES.md` (gui-workflows):
|
||||||
- **I-and-gui-004** — emulator RAM cost (this host ~3.7 GiB)
|
- **I-and-gui-004** — emulator RAM cost (this host ~3.7 GiB)
|
||||||
- **I-and-gui-007** — for reliable withdraw GUI, build/install app from **fix/bank-withdraw-auto-exchange** or **fix/withdraw-spinner-fallback**, not plain master alone
|
- **I-and-gui-007** — for reliable withdraw GUI, build/install app from **fix/bank-withdraw-auto-exchange** or **fix/withdraw-spinner-fallback**, not plain master alone
|
||||||
|
|
||||||
Recommended demo stack:
|
### Ground rule (ops)
|
||||||
|
|
||||||
|
1. **Bring it to run** first (scripts + live stack).
|
||||||
|
2. **App code changes only if needed**, and **minimal**.
|
||||||
|
3. Prefer **existing** `dev/hernani-inference/*` branches over new ones; extend them rather than forking random trees.
|
||||||
|
|
||||||
|
### Recommended demo stack (2026-07)
|
||||||
|
|
||||||
```text
|
```text
|
||||||
1) Checkout taler-android: fix/withdraw-spinner-fallback (or merge fixes)
|
1) taler-android checkout:
|
||||||
2) ./gradlew :wallet:installFdroidDebug
|
dev/hernani-inference/fix-bank-withdraw-auto-exchange
|
||||||
3) Boot emulator / phone
|
(or fix/withdraw-spinner-fallback for spinner + OIM)
|
||||||
|
2) ./gradlew :wallet:assembleFdroidDebug # package net.taler.wallet.fdroid.debug
|
||||||
|
3) Boot emulator / phone (prefer ≥6–8 GiB host RAM; 4 GiB → System UI ANR)
|
||||||
4) android-test/run-goa-gui-chain.sh # STACK=goa|stage
|
4) android-test/run-goa-gui-chain.sh # STACK=goa|stage
|
||||||
```
|
```
|
||||||
|
|
||||||
|
`run-android-build-and-smoke.sh` defaults `BRANCH=dev/hernani-inference/fix-bank-withdraw-auto-exchange`
|
||||||
|
so source smokes pick up the GOA exchange auto-add fix without manual checkout.
|
||||||
|
|
||||||
|
### Runtime note (clementine)
|
||||||
|
|
||||||
|
On ~3.7 GiB hosts the emulator often shows **System UI isn’t responding** before Confirm is tappable. Chain script now prioritizes **Wait** over hunting Confirm. For a green end-to-end GUI path use a physical device or more RAM — the **mint + deep-link + fix-branch APK** path is otherwise ready.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# GOA chain (explorer mint + GUI taps)
|
# GOA chain (explorer mint + GUI taps)
|
||||||
EXP_PW_FILE=$HOME/src/koopa/koopa-admin-secrets/koopa/host-root/taler-bank/bank-explorer-password.txt \
|
EXP_PW_FILE=$HOME/src/koopa/koopa-admin-secrets/koopa/host-root/taler-bank/bank-explorer-password.txt \
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
taler://pay/taler.hacktivism.ch/instances/goa-shop/2026.198-93H450R000000/?c=1G3C43V1H89J8CQQ42TGDGVGMM
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
||||||
|
taler://withdraw/bank.hacktivism.ch/taler-integration/39ba4ffc-f0e6-4e12-9e5b-d11fb8a2bcdd
|
||||||
|
|
@ -19,6 +19,9 @@ ROOT=$(cd "$(dirname "$0")" && pwd)
|
||||||
SMOKE="$ROOT/run-android-pay-smoke.sh"
|
SMOKE="$ROOT/run-android-pay-smoke.sh"
|
||||||
SRC="${TALER_ANDROID_SRC:-$HOME/taler/taler-android}"
|
SRC="${TALER_ANDROID_SRC:-$HOME/taler/taler-android}"
|
||||||
SKIP_PULL="${SKIP_PULL:-0}"
|
SKIP_PULL="${SKIP_PULL:-0}"
|
||||||
|
# Prefer existing inference fix branch for GOA withdraw (spinner/exchange resolve).
|
||||||
|
# Override: BRANCH=master or BRANCH=dev/hernani-inference/fix-withdraw-spinner-fallback
|
||||||
|
BRANCH="${BRANCH:-dev/hernani-inference/fix-bank-withdraw-auto-exchange}"
|
||||||
VARIANT="${VARIANT:-fdroidDebug}" # assemble task suffix: FdroidDebug / NightlyDebug / …
|
VARIANT="${VARIANT:-fdroidDebug}" # assemble task suffix: FdroidDebug / NightlyDebug / …
|
||||||
export ANDROID_HOME="${ANDROID_HOME:-$HOME/Android/Sdk}"
|
export ANDROID_HOME="${ANDROID_HOME:-$HOME/Android/Sdk}"
|
||||||
export ANDROID_SDK_ROOT="${ANDROID_SDK_ROOT:-$ANDROID_HOME}"
|
export ANDROID_SDK_ROOT="${ANDROID_SDK_ROOT:-$ANDROID_HOME}"
|
||||||
|
|
@ -35,13 +38,19 @@ fi
|
||||||
printf 'sdk.dir=%s\n' "$ANDROID_HOME" >"$SRC/local.properties"
|
printf 'sdk.dir=%s\n' "$ANDROID_HOME" >"$SRC/local.properties"
|
||||||
|
|
||||||
cd "$SRC"
|
cd "$SRC"
|
||||||
if [ "$SKIP_PULL" != "1" ] && [ -d .git ]; then
|
if [ -d .git ]; then
|
||||||
echo "git pull --ff-only origin $(git rev-parse --abbrev-ref HEAD)"
|
git fetch origin 2>/dev/null || true
|
||||||
git pull --ff-only origin "$(git rev-parse --abbrev-ref HEAD)" || \
|
if [ -n "$BRANCH" ] && git rev-parse --verify "origin/$BRANCH" >/dev/null 2>&1; then
|
||||||
git fetch origin && git merge --ff-only "origin/$(git rev-parse --abbrev-ref HEAD)" || true
|
echo "checkout origin/$BRANCH (minimal GOA/automation fixes; override BRANCH=)"
|
||||||
|
git checkout -B "$BRANCH" "origin/$BRANCH" 2>/dev/null || git checkout "$BRANCH" 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
if [ "$SKIP_PULL" != "1" ]; then
|
||||||
|
br=$(git rev-parse --abbrev-ref HEAD)
|
||||||
|
git pull --ff-only origin "$br" 2>/dev/null || true
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
COMMIT=$(git rev-parse --short=12 HEAD 2>/dev/null || echo unknown)
|
COMMIT=$(git rev-parse --short=12 HEAD 2>/dev/null || echo unknown)
|
||||||
echo "source: $SRC @ $COMMIT"
|
echo "source: $SRC @ $COMMIT (branch $(git rev-parse --abbrev-ref HEAD 2>/dev/null || ?))"
|
||||||
echo "variant: assemble${VARIANT^}" 2>/dev/null || true
|
echo "variant: assemble${VARIANT^}" 2>/dev/null || true
|
||||||
|
|
||||||
# Map VARIANT → gradle task (fdroidDebug → assembleFdroidDebug)
|
# Map VARIANT → gradle task (fdroidDebug → assembleFdroidDebug)
|
||||||
|
|
|
||||||
|
|
@ -249,14 +249,30 @@ PY
|
||||||
|
|
||||||
click_through() {
|
click_through() {
|
||||||
local labels=("$@")
|
local labels=("$@")
|
||||||
local i lab
|
local i lab misses=0
|
||||||
for i in 1 2 3 4 5 6 7 8; do
|
# Prefer dismissing ANR before hunting Confirm (low-RAM hosts thrash System UI)
|
||||||
|
for i in 1 2 3 4 5 6; do
|
||||||
|
if tap_text "Wait" 2>/dev/null || tap_text "Warten" 2>/dev/null; then
|
||||||
|
info "dismissed ANR (Wait)"
|
||||||
|
pause 2.0
|
||||||
|
misses=0
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
local hit=0
|
||||||
for lab in "${labels[@]}"; do
|
for lab in "${labels[@]}"; do
|
||||||
if tap_text "$lab" 2>/dev/null; then
|
if tap_text "$lab" 2>/dev/null; then
|
||||||
|
hit=1
|
||||||
|
misses=0
|
||||||
pause 0.9
|
pause 0.9
|
||||||
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
pause 0.4
|
if [[ "$hit" -eq 0 ]]; then
|
||||||
|
misses=$((misses + 1))
|
||||||
|
# stop early if hierarchy has nothing useful (avoid burning order deadlines)
|
||||||
|
[[ "$misses" -ge 3 ]] && break
|
||||||
|
fi
|
||||||
|
pause 0.5
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue