diff --git a/.github/workflows/integration-tests-ui-critical.yml b/.github/workflows/integration-tests-ui-critical.yml index bd4a9058dd..07e82ba613 100644 --- a/.github/workflows/integration-tests-ui-critical.yml +++ b/.github/workflows/integration-tests-ui-critical.yml @@ -75,6 +75,11 @@ jobs: target: google_apis channel: canary # Necessary for ATDs arch: x86_64 + - api-level: "37.0" # Android 17 platform id (quoted — YAML parses 37.0 as float 37) + system-image-api-level: "37" + target: google_apis + channel: canary + arch: x86_64 steps: - name: Checkout code uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 @@ -94,11 +99,29 @@ jobs: ~/.android/adb* key: avd-api-${{ matrix.api-level }}-${{ matrix.arch }}-${{ matrix.target }} + - name: Probe API 37 system image on GHA + if: matrix.api-level == '37.0' + id: api37-image + run: | + SDKMANAGER="${ANDROID_SDK_ROOT:-/usr/local/lib/android/sdk}/cmdline-tools/latest/bin/sdkmanager" + yes | "$SDKMANAGER" --licenses > /dev/null + if "$SDKMANAGER" --list --channel=3 2>/dev/null | grep -q 'system-images;android-37;google_apis;x86_64'; then + echo "available=true" >> "$GITHUB_OUTPUT" + else + echo "available=false" >> "$GITHUB_OUTPUT" + echo "::warning title=API 37 system image unavailable::system-images;android-37;google_apis;x86_64 is not published on GHA yet. Skipping API 37 emulator tests until the checklist readiness gate passes." + fi + + - name: Skip API 37 emulator tests (system image not on GHA) + if: matrix.api-level == '37.0' && steps.api37-image.outputs.available != 'true' + run: echo "API 37 emulator tests skipped — system image not available on GHA runners." + - name: Create AVD and generate snapshot for caching - if: steps.avd-cache.outputs.cache-hit != 'true' + if: steps.avd-cache.outputs.cache-hit != 'true' && (matrix.api-level != '37.0' || steps.api37-image.outputs.available == 'true') uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a # pin@v2 with: api-level: ${{ matrix.api-level }} + system-image-api-level: ${{ matrix.system-image-api-level || matrix.api-level }} target: ${{ matrix.target }} channel: ${{ matrix.channel }} arch: ${{ matrix.arch }} @@ -120,9 +143,11 @@ jobs: version: ${{env.MAESTRO_VERSION}} - name: Run tests + if: matrix.api-level != '37.0' || steps.api37-image.outputs.available == 'true' uses: reactivecircus/android-emulator-runner@e89f39f1abbbd05b1113a29cf4db69e7540cae5a # pin@v2.37.0 with: api-level: ${{ matrix.api-level }} + system-image-api-level: ${{ matrix.system-image-api-level || matrix.api-level }} target: ${{ matrix.target }} channel: ${{ matrix.channel }} arch: ${{ matrix.arch }}