From 82da8a4d7c0d7e3763d6a65fc65e9b00bb504262 Mon Sep 17 00:00:00 2001 From: Wojtek Zieba Date: Tue, 23 Jan 2024 12:53:24 +0100 Subject: [PATCH 1/6] ci: use ubuntu-latest for functional tests As it supports kvm now --- .github/workflows/readme.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/readme.yml b/.github/workflows/readme.yml index 01172d57..3d682dde 100644 --- a/.github/workflows/readme.yml +++ b/.github/workflows/readme.yml @@ -44,7 +44,7 @@ jobs: name: artifact path: ~/.m2/repository/com/parsely/parsely/* functional-tests: - runs-on: macos-latest + runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 with: @@ -55,8 +55,13 @@ jobs: java-version: '17' distribution: 'temurin' cache: gradle + - 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: Functional Tests - uses: reactivecircus/android-emulator-runner@v2.28.0 + uses: reactivecircus/android-emulator-runner@v2.29.0 with: working-directory: . api-level: 31 From 742b1d9d3f7771465b77fb61630c5795efcf8cf6 Mon Sep 17 00:00:00 2001 From: Wojtek Zieba Date: Tue, 23 Jan 2024 13:19:02 +0100 Subject: [PATCH 2/6] ci: use gradle-build-action to improve caching --- .github/workflows/publish.yml | 1 - .github/workflows/readme.yml | 6 ++++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index b765d4de..ff79a3cf 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -17,7 +17,6 @@ jobs: with: java-version: '17' distribution: 'temurin' - cache: gradle - name: Build library run: ./gradlew :parsely:assembleDebug - name: Publish to Maven Central Repository diff --git a/.github/workflows/readme.yml b/.github/workflows/readme.yml index 3d682dde..7944a84d 100644 --- a/.github/workflows/readme.yml +++ b/.github/workflows/readme.yml @@ -15,7 +15,8 @@ jobs: with: java-version: '17' distribution: 'temurin' - cache: gradle + - name: Setup Gradle + uses: gradle/gradle-build-action@v2 - name: Build library run: ./gradlew :parsely:assembleDebug - name: Build example app @@ -54,7 +55,8 @@ jobs: with: java-version: '17' distribution: 'temurin' - cache: gradle + - name: Setup Gradle + 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 From f0f2f832cdd155af52b0d699d1635776b3f66a68 Mon Sep 17 00:00:00 2001 From: Wojtek Zieba Date: Tue, 23 Jan 2024 13:19:29 +0100 Subject: [PATCH 3/6] ci: submit Gradle dependencies on each push --- .github/workflows/submit-gradle-dependencies.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/submit-gradle-dependencies.yml b/.github/workflows/submit-gradle-dependencies.yml index 0e201cb1..fb7edc56 100644 --- a/.github/workflows/submit-gradle-dependencies.yml +++ b/.github/workflows/submit-gradle-dependencies.yml @@ -1,9 +1,6 @@ name: Submit dependencies to GitHub Dependency Graph on: push: - branches: - - main - - release/* permissions: contents: write jobs: From bed3638b17d1a3abb8b619d39eaf893e339a9e69 Mon Sep 17 00:00:00 2001 From: Wojtek Zieba Date: Tue, 23 Jan 2024 13:21:05 +0100 Subject: [PATCH 4/6] ci: cache avd --- .github/workflows/readme.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/readme.yml b/.github/workflows/readme.yml index 7944a84d..986655b6 100644 --- a/.github/workflows/readme.yml +++ b/.github/workflows/readme.yml @@ -62,6 +62,14 @@ jobs: 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: AVD cache + uses: actions/cache@v3 + id: avd-cache + with: + path: | + ~/.android/avd/* + ~/.android/adb* + key: avd - name: Functional Tests uses: reactivecircus/android-emulator-runner@v2.29.0 with: From 0b85e529140ae64cb681079ee5ead6201831a504 Mon Sep 17 00:00:00 2001 From: Wojtek Zieba Date: Tue, 23 Jan 2024 13:40:20 +0100 Subject: [PATCH 5/6] ci: create cacheable avd snapshot. Increase disk size to 4g --- .github/workflows/readme.yml | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/.github/workflows/readme.yml b/.github/workflows/readme.yml index 986655b6..06263b11 100644 --- a/.github/workflows/readme.yml +++ b/.github/workflows/readme.yml @@ -70,8 +70,22 @@ jobs: ~/.android/avd/* ~/.android/adb* key: avd + - name: Create AVD and generate snapshot for caching + if: steps.avd-cache.outputs.cache-hit != 'true' + uses: reactivecircus/android-emulator-runner@v2 + with: + working-directory: . + api-level: 31 + profile: Nexus 6 + arch: x86_64 + force-avd-creation: false + avd-name: macOS-avd-x86_64-31 + emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none + disable-animations: true + disk-size: 4096M + script: echo "Generated AVD snapshot for caching." - name: Functional Tests - uses: reactivecircus/android-emulator-runner@v2.29.0 + uses: reactivecircus/android-emulator-runner@v2 with: working-directory: . api-level: 31 @@ -81,6 +95,7 @@ jobs: avd-name: macOS-avd-x86_64-31 emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none disable-animations: true + disk-size: 4096M script: ./gradlew :parsely:connectedDebugAndroidTest - name: Publish build artifacts uses: actions/upload-artifact@v3 From 230ce39b64e03888a79e38514659a52a1cfb61a6 Mon Sep 17 00:00:00 2001 From: Wojtek Zieba Date: Tue, 23 Jan 2024 13:52:50 +0100 Subject: [PATCH 6/6] ci: uninstall test orchestrator before running functional tests https://github.com/ReactiveCircus/android-emulator-runner/issues/319 --- .github/workflows/readme.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/readme.yml b/.github/workflows/readme.yml index 06263b11..a76f5f33 100644 --- a/.github/workflows/readme.yml +++ b/.github/workflows/readme.yml @@ -96,7 +96,7 @@ jobs: emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none disable-animations: true disk-size: 4096M - script: ./gradlew :parsely:connectedDebugAndroidTest + script: adb uninstall "com.parsely.parselyandroid.test"; ./gradlew :parsely:connectedDebugAndroidTest - name: Publish build artifacts uses: actions/upload-artifact@v3 if: always()