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
2 changes: 1 addition & 1 deletion .github/workflows/build_and_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ jobs:
secrets: inherit
with:
cancel-workflow-on-failure: true
runs-on: 4_core_GitHub_hosted
runs-on: depot-ubuntu-24.04-32
run: |
# Run check code style from dev-tools on all of our files using our
# codespace image. This ensures that the version of code checking tools
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,20 @@ adb wait-for-device
until [ "$(adb shell getprop sys.boot_completed 2> /dev/null | tr -d '\r')" = "1" ]; do
sleep 1
done
# `sys.boot_completed` flips when the system sends `BOOT_COMPLETED`,
# not when its receivers are done with it. On this `google_apis` image
# that broadcast fans out to Play Services and dozens of other manifest
# receivers, which keeps the broadcast queues busy for another ~30s,
# and package events for anything installed meanwhile queue up behind
# it. Opening the project inside that window has had Android relaunch
# Expo Go's activity mid-flow, as the delayed package events for its
# own fresh install landed: the app re-ran, the onboarding sheet the
# flow had just dismissed re-opened, and the flow's next tap hit the
# sheet instead of the app. So wait for the queues to drain before
# opening the project. The wait is bounded so that a device that never
# goes quiet degrades to a fixed delay, which still outlasts the boot
# storm, rather than eating the whole test budget.
timeout 120 adb shell am wait-for-broadcast-idle > /dev/null || true

# Skip Chrome's first-run screen. Signing in hands the OAuth
# authorization URL to an in-app browser tab, which Chrome serves; on
Expand Down
14 changes: 14 additions & 0 deletions reboot/examples/chat-room/frontend/mobile/.tests/maestro_test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,20 @@ adb wait-for-device
until [ "$(adb shell getprop sys.boot_completed 2> /dev/null | tr -d '\r')" = "1" ]; do
sleep 1
done
# `sys.boot_completed` flips when the system sends `BOOT_COMPLETED`,
# not when its receivers are done with it. On this `google_apis` image
# that broadcast fans out to Play Services and dozens of other manifest
# receivers, which keeps the broadcast queues busy for another ~30s,
# and package events for anything installed meanwhile queue up behind
# it. Opening the project inside that window has had Android relaunch
# Expo Go's activity mid-flow, as the delayed package events for its
# own fresh install landed: the app re-ran, the onboarding sheet the
# flow had just dismissed re-opened, and the flow's next tap hit the
# sheet instead of the app. So wait for the queues to drain before
# opening the project. The wait is bounded so that a device that never
# goes quiet degrades to a fixed delay, which still outlasts the boot
# storm, rather than eating the whole test budget.
timeout 120 adb shell am wait-for-broadcast-idle > /dev/null || true

# Load the app via Expo Go, pointed at the backend on the emulator's
# host alias (`10.0.2.2`). `expo start --android` installs Expo Go and
Expand Down
Loading