CI: Gradle Managed Devices + GitHub Actions workflow

pixel7Api34 managed device runs instrumented tests headlessly on CI.
Three test-filter profiles (ci/parallel/full) mirror iOS xctestplan
variants. run_ui_tests.sh convenience wrapper.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Trey T
2026-04-18 14:57:42 -05:00
parent 227c0a9240
commit 95a5338abd
6 changed files with 91 additions and 0 deletions

30
.github/workflows/android-ui-tests.yml vendored Normal file
View File

@@ -0,0 +1,30 @@
name: Android UI Tests
on:
pull_request:
branches: [main, master]
push:
branches: [main, master]
jobs:
ui-tests:
runs-on: macos-14
timeout-minutes: 45
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with: { distribution: temurin, java-version: 17 }
- name: Accept Android licenses
run: yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses || true
- name: Verify test-tag parity
run: ./scripts/verify_test_tag_parity.sh
- name: Run unit tests
run: ./gradlew :composeApp:testDebugUnitTest
- name: Run instrumented tests (managed device)
run: ./gradlew :composeApp:pixel7Api34DebugAndroidTest
env:
GRADLE_OPTS: -Xmx4g -XX:+UseParallelGC
- name: Upload test reports
if: failure()
uses: actions/upload-artifact@v4
with:
name: test-reports
path: composeApp/build/reports/