Skip to content

Explore AINFRA-3575 option 3: emulator on the android queue - #1122

Closed
mokagio wants to merge 7 commits into
trunkfrom
ainfra-3575-does-aztec-android-need-firebase-secrets-android-queue
Closed

mokagio wants to merge 7 commits into
trunkfrom
ainfra-3575-does-aztec-android-need-firebase-secrets-android-queue

Conversation

@mokagio

@mokagio mokagio commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Fix

Exploration for AINFRA-3575: option 3 of the three Jeremy Massel listed. The siblings are #1120 and #1121.

Connected tests run on an API 34 x86_64 emulator on the android queue, using its nested virtualization. That removes the only use of firebase.secrets.json, so there is nothing left to migrate to a8c-secrets. BaseTest also stops requesting storage permission above API 29, which failed nearly the whole suite on API 34.

Result: 108 run, 5 skipped, 0 failed, with Connected Tests taking 17m 13s. That is a single run, so it doesn't settle the flakiness reported on #1105.

The script is not mergeable as is. The android image lacks the emulator, a system image and libX11-xcb, and agents cannot write to its SDK or use sudo, so the job fetches them into a temp directory on every run. Adopting this option should mean adding them to the image in buildkite-ci and dropping that setup here.

Test

  1. Read the Connected Tests step on Buildkite and its uploaded reports.

Firebase Test Lab rejects `Nexus5X`, so no test has run since at least September 2025.
Jeremy Massel listed moving to the `android` queue as one option in AINFRA-3575.
The agent image has no emulator or system image, so the job installs them itself.
`/dev/kvm` and `-accel-check` run first so a missing nested virtualization fails with a clear signal.

---

Generated with the help of Claude Code (Opus 5.5), https://code.claude.com
Connected tests were the only consumer of `firebase.secrets.json`, and they now run on an emulator.
That leaves nothing to migrate to `a8c-secrets`, which is the question AINFRA-3575 asked.

---

Generated with the help of Claude Code (Opus 5.5), https://code.claude.com
@mokagio mokagio self-assigned this Nov 3, 2026
`sdkmanager` failed with `Failed to read or create install properties file`, because the agent user cannot write to the SDK in the `android` image.

---

Generated with the help of Claude Code (Opus 5.5), https://code.claude.com
The app declares `WRITE_EXTERNAL_STORAGE` up to API 29 and `READ_EXTERNAL_STORAGE` up to API 32.
On API 34 `GrantPermissionRule` therefore fails with `READ_EXTERNAL_STORAGE cannot be granted!`, which failed nearly the whole connected suite before any test body ran.

---

Generated with the help of Claude Code (Opus 5.5), https://code.claude.com
The system `avdmanager` failed with `Package path is not valid`, because it could not see the system image in the job-local SDK.

---

Generated with the help of Claude Code (Opus 5.5), https://code.claude.com
The emulator segfaulted after `Could not open libX11-xcb.so.1, give up`.
Installing it in the job tells us whether it is the last blocker before changing the `android` image.

---

Generated with the help of Claude Code (Opus 5.5), https://code.claude.com
`sudo` requires a password on `android` agents, so the job cannot install system packages.
The library only needs to be loadable by the emulator process.

---

Generated with the help of Claude Code (Opus 5.5), https://code.claude.com
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant