name: android on: push: branches: - main paths: - 'android/**' - 'shared/fixtures/**' - '.github/workflows/android.yml' pull_request: paths: - 'android/**' - 'shared/fixtures/**' - '.github/workflows/android.yml' permissions: contents: read concurrency: group: android-${{ github.ref }} cancel-in-progress: true jobs: build: runs-on: ubuntu-latest defaults: run: working-directory: android steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: distribution: temurin java-version: '21' # Android SDK is preinstalled on GitHub ubuntu runners (licenses # accepted); AGP auto-installs any missing platform/build-tools. - uses: gradle/actions/setup-gradle@v4 - name: Protocol tests (pure JVM, fixtures-driven) run: ./gradlew :core:protocol:test :core:data:testDebugUnitTest :app:testDebugUnitTest - name: Assemble debug APK and lint run: ./gradlew :app:assembleDebug :app:lintDebug transcript-layout: runs-on: ubuntu-latest strategy: fail-fast: false matrix: api-level: [29, 36] steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: distribution: temurin java-version: '21' - uses: gradle/actions/setup-gradle@v4 - name: Enable KVM run: | echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules sudo udevadm control --reload-rules sudo udevadm trigger --name-match=kvm - uses: reactivecircus/android-emulator-runner@v2 with: api-level: ${{ matrix.api-level }} arch: x86_64 disable-animations: true script: cd android && ./gradlew :app:connectedDebugAndroidTest