name: Android CI on: workflow_dispatch: push: branches: - main - staging - trying pull_request: branches: - main permissions: actions: none checks: none contents: read deployments: none discussions: none id-token: none issues: none packages: none pages: none pull-requests: none repository-projects: none security-events: none statuses: none env: JAVA_HOME: /usr/lib/jvm/java-21-openjdk-amd64 jobs: build: runs-on: ubuntu-latest strategy: matrix: flavor: [Foss, Gplay] steps: - uses: actions/checkout@v6 - uses: gradle/actions/wrapper-validation@v5 - name: set up OpenJDK 21 run: | sudo apt-get update sudo apt-get install -y openjdk-21-jdk-headless sudo update-alternatives --auto java - name: Build run: ./gradlew assemble${{ matrix.flavor }}Release - name: Check lint run: ./gradlew lint${{ matrix.flavor }}Release - name: Run unit tests run: timeout 5m ./gradlew test${{ matrix.flavor }}ReleaseUnitTest || { ./gradlew --stop && timeout 5m ./gradlew test${{ matrix.flavor }}ReleaseUnitTest; } - 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 - name: Run instrumented tests (API 21) uses: ReactiveCircus/android-emulator-runner@v2 with: api-level: 21 arch: x86_64 script: ./gradlew connected${{ matrix.flavor }}DebugAndroidTest - name: Run instrumented tests (API 35) uses: ReactiveCircus/android-emulator-runner@v2 with: api-level: 35 arch: x86_64 script: ./gradlew connected${{ matrix.flavor }}DebugAndroidTest - name: Archive test results if: always() uses: actions/upload-artifact@v5.0.0 with: name: test-results-flavor${{ matrix.flavor }} path: app/build/reports