Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,12 @@ jobs:
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
script: |
# Expo's heavier UI can trigger a system-level ANR dialog on the
# low-memory GitHub Actions emulator. Disable ANR prompts before
# installing the app so Maestro is not blocked by emulator noise.
adb shell settings put secure show_anr_messages 0
adb shell settings put global anr_dialogs_disabled true
adb shell settings put global anr_show_background false
Comment on lines +210 to +212

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚩 ADB ANR suppression settings may be no-ops on API 29

The three adb shell settings put commands (show_anr_messages, anr_dialogs_disabled, anr_show_background) at .github/workflows/e2e.yml:210-212 are not standard AOSP Settings keys documented for API 29. settings put won't fail even if the keys are unrecognized — it silently writes to the database — but the system may not read them. The anr_dialogs_disabled value is set to true (string) rather than 1 (integer), which could be an issue if the system uses Settings.Global.getInt(). This is mitigated by the Maestro-level fallback: the repeat loop in _setup.yaml:78-89 still actively dismisses any ANR dialogs that appear. So these commands are best-effort hardening, not the sole defense.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

adb install ${{ matrix.dir }}/android/app/build/outputs/apk/release/app-release.apk
maestro test --env APP_ID="${{ matrix.bundle_id }}" .maestro/flows/ci-master.yaml

Expand Down
9 changes: 4 additions & 5 deletions .maestro/flows/_setup.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,8 @@ appId: ${APP_ID}
- tapOn: "Reload"

# The GitHub Actions Android emulator (API 29, software GPU) occasionally shows
# a system-level "System UI isn't responding" dialog that is unrelated to the
# app. The dialog usually appears shortly after launch, after the initial
# visibility check has already run, so a one-shot conditional can miss it.
# a system-level "System UI isn't responding" ANR dialog that is unrelated to
# the app. The dialog uses a straight ASCII apostrophe; match that exactly.
# Poll for the dialog on Android while the playground screen is still hidden,
# and tap "Wait" so the loaded app stays in focus.
- runFlow:
Expand All @@ -83,15 +82,15 @@ appId: ${APP_ID}
commands:
- runFlow:
when:
visible: "System UI isnt responding"
visible: "System UI isn't responding"
commands:
- tapOn: "Wait"
- waitForAnimationToEnd:
timeout: 2000

- extendedWaitUntil:
visible: "RNZipArchive Playground"
timeout: 180000
timeout: 10000

- runFlow:
when:
Expand Down