From 36da02d2cf97f691ac0a2cad9bd3350a8e5e8645 Mon Sep 17 00:00:00 2001 From: Ricki Hirner Date: Mon, 3 Apr 2023 20:38:01 +0200 Subject: [PATCH] Update dependencies; use large runners for CI Android tests --- .github/workflows/build-kdoc.yml | 3 +- .github/workflows/test-dev.yml | 58 +++++++++++++++++++++++--------- build.gradle | 10 +++--- 3 files changed, 48 insertions(+), 23 deletions(-) diff --git a/.github/workflows/build-kdoc.yml b/.github/workflows/build-kdoc.yml index 1b1976b..72b4e86 100644 --- a/.github/workflows/build-kdoc.yml +++ b/.github/workflows/build-kdoc.yml @@ -14,8 +14,7 @@ jobs: with: distribution: 'temurin' java-version: 11 - cache: 'gradle' - - uses: gradle/wrapper-validation-action@v1 + - uses: gradle/gradle-build-action@v2 - name: Build KDoc run: ./gradlew --no-daemon dokkaHtml diff --git a/.github/workflows/test-dev.yml b/.github/workflows/test-dev.yml index 373b1ea..7250cc4 100644 --- a/.github/workflows/test-dev.yml +++ b/.github/workflows/test-dev.yml @@ -12,8 +12,7 @@ jobs: with: distribution: 'temurin' java-version: 11 - cache: 'gradle' - - uses: gradle/wrapper-validation-action@v1 + - uses: gradle/gradle-build-action@v2 - name: Check run: ./gradlew check @@ -27,13 +26,10 @@ jobs: test_on_emulator: name: Tests with emulator - runs-on: privileged - container: - image: ghcr.io/bitfireat/docker-android-ci:main - options: --privileged - env: - ANDROID_HOME: /sdk - ANDROID_AVD_HOME: /root/.android/avd + runs-on: ubuntu-latest-4-cores + strategy: + matrix: + api-level: [ 31 ] steps: - uses: actions/checkout@v2 with: @@ -42,17 +38,47 @@ jobs: with: distribution: 'temurin' java-version: 11 - cache: 'gradle' - - uses: gradle/wrapper-validation-action@v1 + - uses: gradle/gradle-build-action@v2 + + - name: Enable KVM group perms + 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: Cache AVD and APKs + uses: actions/cache@v3 + id: avd-cache + with: + path: | + ~/.android/avd/* + ~/.android/adb* + key: avd-${{ matrix.api-level }} + + - name: Create AVD and generate snapshot for caching + if: steps.avd-cache.outputs.cache-hit != 'true' + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: ${{ matrix.api-level }} + arch: x86_64 + force-avd-creation: false + emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none + disable-animations: false + script: echo "Generated AVD snapshot for caching." + + - name: Run tests + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: ${{ matrix.api-level }} + arch: x86_64 + force-avd-creation: false + emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none + disable-animations: true + script: ./gradlew --no-daemon connectedCheck - - name: Start emulator - run: start-emulator.sh - - name: Run connected tests - run: ./gradlew --no-daemon connectedCheck - name: Archive results uses: actions/upload-artifact@v2 with: name: test-results path: | build/reports - diff --git a/build.gradle b/build.gradle index fdf4465..4219c12 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ buildscript { ext.versions = [ - kotlin: '1.7.20', - dokka: '1.7.20', + kotlin: '1.8.0', + dokka: '1.8.10', conscrypt: '2.5.2' ] @@ -11,7 +11,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:7.4.1' + classpath 'com.android.tools.build:gradle:7.4.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}" classpath "org.jetbrains.dokka:dokka-gradle-plugin:${versions.dokka}" } @@ -60,8 +60,8 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' - implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.5.1' - implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1' + implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.6.1' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1' implementation 'com.google.android.material:material:1.8.0' implementation "org.conscrypt:conscrypt-android:${versions.conscrypt}"