Stabilise the Android emulator: no snapshot, more RAM, reclaim disk - #57
Merged
Conversation
The Android leg has failed twice in a row on a PR whose tests pass on every other platform, and in both cases the emulator died rather than a test failing: once as `adb: device offline` immediately after "Successfully loaded snapshot", once as the adb daemon becoming unreachable mid-run (exit 137, SIGKILL). When the emulator survives, all 119 tests pass. -no-snapshot removes the snapshot save/restore step implicated in the first mode, trading a slower boot for determinism — there is room inside the existing 30-minute budget, since a full run is currently under six. -memory 4096 gives the AVD headroom for test binaries that statically link C libraries, and freeing disk first keeps the Swift toolchain and Android SDK from crowding out the emulator image. Note that android-emulator-options replaces the action's default rather than appending, so the three existing flags are repeated here.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The
Test Androidleg has failed twice consecutively on #54, a PR that is green on all four Apple destinations and Linux. In both cases the emulator died — no test ever failed an assertion:adb: device offlineat the boot check, immediately afterSuccessfully loaded snapshot 'default_boot'— before any test ranWhen the emulator survives, all 119 tests pass in ~18s. So this is emulator/host reliability, not test cost or correctness.
Three targeted changes:
-no-snapshot— takes the snapshot save/restore step out of the picture, which is what the first failure mode points at. Costs a slower boot; there's ample room in the existing 30-minute budget, since a full run is currently under six minutes.-memory 4096— headroom for test binaries that statically link C libraries. Add AtprotoTypesVerify: CAR/MST/CID repo-proof verification #54 addslibsecp256k1as a test-only dependency, which is a plausible contributor to the SIGKILL.free-disk-space: true— the job already unpacks a Swift toolchain and the Android SDK; reclaiming first keeps them from crowding out the emulator image.Note that
android-emulator-optionsreplaces the action's default rather than appending, so the three existing flags (-no-window -noaudio -no-boot-anim) are repeated explicitly.This is deliberately a fix to the shared workflow rather than a workaround in #54 — the leg was added yesterday and has only one prior run, so there's no baseline yet, and any future PR with a heavier test binary would hit the same wall.
Test plan
pull_request)🤖 Generated with Claude Code