From 85ea09463b9d0c9786ba98e45a5c9c5021db2fa9 Mon Sep 17 00:00:00 2001 From: Adi Date: Wed, 7 Oct 2026 07:44:01 +0300 Subject: [PATCH 1/4] Fix CI: bump setup-android to v3 setup-android@v2 runs `sdkmanager tools`, and the legacy `tools` package no longer exists in the SDK repository, so the job failed at SDK setup. Drop the explicit `tools` install for the same reason, and bump checkout/setup-java to v4 (temurin replaces deprecated adopt). Co-Authored-By: Claude Opus 5.5 --- .github/workflows/android-build.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/android-build.yml b/.github/workflows/android-build.yml index bef8422..37faa78 100644 --- a/.github/workflows/android-build.yml +++ b/.github/workflows/android-build.yml @@ -14,23 +14,22 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up JDK 17 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: - distribution: 'adopt' + distribution: 'temurin' java-version: '17' - name: Setup Android SDK - uses: android-actions/setup-android@v2 + uses: android-actions/setup-android@v3 - name: Install Android SDK components run: | cd $ANDROID_HOME/cmdline-tools/latest/bin ./sdkmanager "platform-tools" ./sdkmanager "emulator" - ./sdkmanager "tools" ./sdkmanager "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" ./sdkmanager "platforms;android-${TARGET_VERSION}" ./sdkmanager "system-images;android-30;google_apis;x86" From 4dcd9e78cb766f0f2bbc34915bd9b7a532cfa283 Mon Sep 17 00:00:00 2001 From: Adi Date: Wed, 7 Oct 2026 07:44:55 +0300 Subject: [PATCH 2/4] Don't install legacy tools package in setup-android setup-android@v3 still defaults `packages` to 'tools platform-tools'. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/android-build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/android-build.yml b/.github/workflows/android-build.yml index 37faa78..8f214ec 100644 --- a/.github/workflows/android-build.yml +++ b/.github/workflows/android-build.yml @@ -24,6 +24,8 @@ jobs: - name: Setup Android SDK uses: android-actions/setup-android@v3 + with: + packages: 'platform-tools' - name: Install Android SDK components run: | From 37614619b011f260d23c391249a56c1a5ddb0183 Mon Sep 17 00:00:00 2001 From: Adi Date: Wed, 7 Oct 2026 08:16:23 +0300 Subject: [PATCH 3/4] CI: use x86_64 emulator image, time out emulator wait The 32-bit x86 API 30 image never booted on current emulator builds and `adb wait-for-device` had no timeout, so the job hung. Switch to x86_64, cap the wait at 10 minutes, and print the emulator log on failure. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/android-build.yml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/android-build.yml b/.github/workflows/android-build.yml index 8f214ec..e816d31 100644 --- a/.github/workflows/android-build.yml +++ b/.github/workflows/android-build.yml @@ -34,7 +34,7 @@ jobs: ./sdkmanager "emulator" ./sdkmanager "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" ./sdkmanager "platforms;android-${TARGET_VERSION}" - ./sdkmanager "system-images;android-30;google_apis;x86" + ./sdkmanager "system-images;android-30;google_apis;x86_64" - name: Enable KVM run: | @@ -45,7 +45,7 @@ jobs: - name: Create AVD run: | export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin - echo "no" | avdmanager create avd -n test -k "system-images;android-30;google_apis;x86" --force + echo "no" | avdmanager create avd -n test -k "system-images;android-30;google_apis;x86_64" --force - name: List AVDs (debug) run: | @@ -61,9 +61,10 @@ jobs: export PATH=$PATH:$ANDROID_HOME/emulator:$ANDROID_HOME/cmdline-tools/latest/bin # Verify AVD exists before starting avdmanager list avd - emulator -avd test -no-audio -no-window -no-boot-anim -no-metrics -verbose & + emulator -avd test -no-audio -no-window -no-boot-anim -no-metrics -no-snapshot -gpu swiftshader_indirect -verbose > emulator.log 2>&1 & - name: Wait for emulator + timeout-minutes: 10 run: | # Wait for the emulator to start up echo "Waiting for emulator to boot..." @@ -71,6 +72,10 @@ jobs: adb devices echo "Emulator is ready" + - name: Emulator log (on failure) + if: failure() + run: tail -n 200 emulator.log || true + - name: Export CLOUDINARY_URL run: | export CLOUDINARY_URL=$(bash tools/get_test_cloud.sh) From a189c39ce62e543abd4409759e96b124596cf2d7 Mon Sep 17 00:00:00 2001 From: Adi Date: Wed, 7 Oct 2026 08:28:46 +0300 Subject: [PATCH 4/4] CI: pin ANDROID_AVD_HOME so emulator finds the AVD Current avdmanager writes AVDs to ~/.config/.android/avd while the emulator looks in ~/.android/avd ("Unknown AVD name [test]"). Set ANDROID_AVD_HOME so both use the same directory. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/android-build.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/android-build.yml b/.github/workflows/android-build.yml index e816d31..6edcffc 100644 --- a/.github/workflows/android-build.yml +++ b/.github/workflows/android-build.yml @@ -11,6 +11,7 @@ jobs: ANDROID_HOME: /usr/local/android-sdk MALLOC_ARENA_MAX: 2 ADB_INSTALL_TIMEOUT: 20 + ANDROID_AVD_HOME: /home/runner/.android/avd steps: - name: Checkout code @@ -45,6 +46,7 @@ jobs: - name: Create AVD run: | export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin + mkdir -p "$ANDROID_AVD_HOME" echo "no" | avdmanager create avd -n test -k "system-images;android-30;google_apis;x86_64" --force - name: List AVDs (debug)