diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9c5cde47..4b6bf5f3 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -74,3 +74,55 @@ jobs: path: | **/build/reports/ **/build/test-results/ + + android_emulator: + runs-on: ubuntu-latest + timeout-minutes: 30 + env: + AVD_NAME: ubuntu-avd-x86_64-31 + steps: + - name: checkout + uses: actions/checkout@v4 + + - name: Validate Gradle Wrapper + uses: gradle/actions/wrapper-validation@v4 + - uses: actions/cache@v4 + with: + path: ~/.konan + key: ${{ runner.os }}-${{ hashFiles('**/.lock') }} + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + - name: Set up Gradle + uses: gradle/actions/setup-gradle@v4 + with: + cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} + - name: AVD Cache + uses: actions/cache@v4 + id: avd-cache + with: + path: | + ~/.android/avd/* + ~/.android/adb* + key: avd-31 + + # https://github.com/ReactiveCircus/android-emulator-runner?tab=readme-ov-file#usage--examples + - 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: emulator tests + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: 31 + force-avd-creation: false + target: google_apis + arch: x86_64 + disable-animations: false + avd-name: $AVD_NAME + emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none + script: ./gradlew --scan core-tests-android:connectedCheck