From dbcb18daecb9e6cc818067a2128a5da9fc09adfd Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Sun, 15 Jun 2025 11:27:55 +0200 Subject: [PATCH 01/13] try cache test vm --- .github/workflows/android_main.yml | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/.github/workflows/android_main.yml b/.github/workflows/android_main.yml index a15a6f5318f8..0cbdcd19839a 100644 --- a/.github/workflows/android_main.yml +++ b/.github/workflows/android_main.yml @@ -123,13 +123,36 @@ jobs: sudo udevadm control --reload-rules sudo udevadm trigger --name-match=kvm - - name: Run tests + - name: Gradle cache + uses: gradle/actions/setup-gradle@v3 + + - name: AVD cache + uses: actions/cache@v4 + 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: ${{ matrix.arch }} force-avd-creation: false - emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none -no-snapshot-save + 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: ${{ matrix.arch }} + force-avd-creation: false + emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none -no-snapshot-save target: google_apis script: | mkdir -p testResults/screenshots From 153b55e85e20ef99adefdb75be93c532e92daa3d Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Sun, 15 Jun 2025 11:46:05 +0200 Subject: [PATCH 02/13] print cache size --- .github/workflows/android_main.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/android_main.yml b/.github/workflows/android_main.yml index 0cbdcd19839a..dcaf64acfaa0 100644 --- a/.github/workflows/android_main.yml +++ b/.github/workflows/android_main.yml @@ -52,6 +52,9 @@ jobs: - name: gradle run: ./gradlew assembleDebug lintProDebug lintLiteDebug --stacktrace + - name: print conan cache size + run: du -h -d1 ~/.conan2/p + - name: Artifact APKs uses: actions/upload-artifact@v4 with: From 3469c9312e68a2cf71f1fd5300c743a309e8b349 Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Sun, 15 Jun 2025 12:04:00 +0200 Subject: [PATCH 03/13] try again --- .github/workflows/android_main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/android_main.yml b/.github/workflows/android_main.yml index dcaf64acfaa0..5ac81191d457 100644 --- a/.github/workflows/android_main.yml +++ b/.github/workflows/android_main.yml @@ -156,6 +156,7 @@ jobs: arch: ${{ matrix.arch }} force-avd-creation: false emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none -no-snapshot-save + disable-animations: true target: google_apis script: | mkdir -p testResults/screenshots From 8cceb9431e9e05197cddd65c2ca7687db9ccad45 Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Sun, 15 Jun 2025 12:49:22 +0200 Subject: [PATCH 04/13] try again --- .github/workflows/android_main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/android_main.yml b/.github/workflows/android_main.yml index 5ac81191d457..dae7d0ea141e 100644 --- a/.github/workflows/android_main.yml +++ b/.github/workflows/android_main.yml @@ -136,7 +136,7 @@ jobs: path: | ~/.android/avd/* ~/.android/adb* - key: avd-${{ matrix.api-level }} + key: avd-${{ matrix.api-level }}-v1 - name: Create AVD and generate snapshot for caching if: steps.avd-cache.outputs.cache-hit != 'true' From fa45db78596fa461265a2d1653f2d1c8872e50cd Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Sun, 15 Jun 2025 15:00:50 +0200 Subject: [PATCH 05/13] try again --- .github/workflows/android_main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/android_main.yml b/.github/workflows/android_main.yml index b8575e3aa4bf..2484059056e8 100644 --- a/.github/workflows/android_main.yml +++ b/.github/workflows/android_main.yml @@ -159,6 +159,8 @@ jobs: disable-animations: true target: google_apis script: | + ./gradlew connectedCheck + mkdir -p testResults/screenshots adb logcat > testResults/logcat.txt & From f1f20bbb845db226ea4a2b66f81c3e13952d860d Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Sun, 15 Jun 2025 15:28:04 +0200 Subject: [PATCH 06/13] try again --- .github/workflows/android_main.yml | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/.github/workflows/android_main.yml b/.github/workflows/android_main.yml index 2484059056e8..fb0be8e4df1c 100644 --- a/.github/workflows/android_main.yml +++ b/.github/workflows/android_main.yml @@ -49,11 +49,18 @@ jobs: - name: conan profile run: conan profile detect + - name: Gradle cache + uses: gradle/actions/setup-gradle@v3 + - name: gradle run: ./gradlew assembleDebug lintProDebug lintLiteDebug --stacktrace - - name: print conan cache size + - name: conan cache size run: du -h -d1 ~/.conan2/p + - name: conan login + run: conan remote login odr admin --password '${{ secrets.ARTIFACTORY }}' + - name: conan upload + run: conan upload "*" --check --confirm --remote odr - name: Artifact APKs uses: actions/upload-artifact@v4 @@ -120,15 +127,17 @@ jobs: - name: conan profile run: conan profile detect - - 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: Gradle cache uses: gradle/actions/setup-gradle@v3 + - name: Download APKs + uses: actions/download-artifact@v4 + with: + name: APKs + + - name: gradle + run: ./gradlew assembleDebug lintProDebug lintLiteDebug --stacktrace + - name: AVD cache uses: actions/cache@v4 id: avd-cache @@ -138,6 +147,12 @@ jobs: ~/.android/adb* key: avd-${{ matrix.api-level }}-v1 + - 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: Create AVD and generate snapshot for caching if: steps.avd-cache.outputs.cache-hit != 'true' uses: reactivecircus/android-emulator-runner@v2 From fa3680a8dc0de30e30ea28404434b0174a2fe54a Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Sun, 15 Jun 2025 15:29:55 +0200 Subject: [PATCH 07/13] rename workflow --- .github/workflows/{android_main.yml => build_test.yml} | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) rename .github/workflows/{android_main.yml => build_test.yml} (97%) diff --git a/.github/workflows/android_main.yml b/.github/workflows/build_test.yml similarity index 97% rename from .github/workflows/android_main.yml rename to .github/workflows/build_test.yml index fb0be8e4df1c..dce586ebee63 100644 --- a/.github/workflows/android_main.yml +++ b/.github/workflows/build_test.yml @@ -1,12 +1,8 @@ -name: OpenDocument-Reader-Android +name: build_test on: workflow_dispatch: push: - paths-ignore: - - '**.md' - - '.github/**' - - '!.github/workflows/android_main.yml' concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} From ad219e3f8de64c403c7277c6843991628b88aa81 Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Sun, 15 Jun 2025 17:12:15 +0200 Subject: [PATCH 08/13] remove explicit gradle build again --- .github/workflows/build_test.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index dce586ebee63..3d0b69d242f6 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -126,14 +126,6 @@ jobs: - name: Gradle cache uses: gradle/actions/setup-gradle@v3 - - name: Download APKs - uses: actions/download-artifact@v4 - with: - name: APKs - - - name: gradle - run: ./gradlew assembleDebug lintProDebug lintLiteDebug --stacktrace - - name: AVD cache uses: actions/cache@v4 id: avd-cache From ef8fa81f30d25b5e437711e2aaab1d7f1f5b0a5a Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Sun, 15 Jun 2025 17:30:28 +0200 Subject: [PATCH 09/13] revert test call --- .github/workflows/build_test.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 3d0b69d242f6..9b072834235a 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -162,8 +162,6 @@ jobs: disable-animations: true target: google_apis script: | - ./gradlew connectedCheck - mkdir -p testResults/screenshots adb logcat > testResults/logcat.txt & From d87f3be73e74a49c608fd010064a0ad8d8f9fa7e Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Sun, 15 Jun 2025 17:59:14 +0200 Subject: [PATCH 10/13] use release build by default --- app/conanprofile.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/conanprofile.txt b/app/conanprofile.txt index 4047180cb7b6..2dfcc9fb6255 100644 --- a/app/conanprofile.txt +++ b/app/conanprofile.txt @@ -7,7 +7,9 @@ compiler=clang compiler.version=17 compiler.cppstd=20 compiler.libcxx=c++_shared -build_type=RelWithDebInfo +&:build_type=RelWithDebInfo +odrcore/*:build_type=RelWithDebInfo +build_type=Release [conf] tools.android:ndk_path=@NDK_PATH@ From 75b698946ef686dc4dba6925a4136f9999d9a1d6 Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Sun, 15 Jun 2025 20:46:22 +0200 Subject: [PATCH 11/13] try not skip binaries --- app/conanprofile.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/conanprofile.txt b/app/conanprofile.txt index 2dfcc9fb6255..19fd9e44bb3f 100644 --- a/app/conanprofile.txt +++ b/app/conanprofile.txt @@ -14,3 +14,4 @@ build_type=Release [conf] tools.android:ndk_path=@NDK_PATH@ tools.build:skip_test=True +tools.graph:skip_binaries=False From 38490cc5d5748252a6b6609a7768c796d9503e77 Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Sun, 15 Jun 2025 22:39:07 +0200 Subject: [PATCH 12/13] try something simpler --- .github/workflows/build_test.yml | 26 +------------------------- 1 file changed, 1 insertion(+), 25 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 9b072834235a..26259e2ed13e 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -161,28 +161,4 @@ jobs: emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none -no-snapshot-save disable-animations: true target: google_apis - script: | - mkdir -p testResults/screenshots - adb logcat > testResults/logcat.txt & - - adb shell screencap /data/local/tmp/beforeTests.png - adb pull /data/local/tmp/beforeTests.png testResults/screenshots/ - - bundle exec fastlane tests || touch sorry_but_tests_are_failing - adb pull /sdcard/Pictures/screenshots testResults/ || true - - adb shell screencap /data/local/tmp/afterTests.png - adb pull /data/local/tmp/afterTests.png testResults/screenshots/ - - mv app/build/reports/androidTests/connected testResults/ - mv app/build/outputs/androidTest-results testResults/ - - test ! -f sorry_but_tests_are_failing - - - name: upload test results - uses: actions/upload-artifact@v4 - if: always() - with: - name: testResults-${{ matrix.api-level }}-${{ matrix.arch }} - path: testResults - if-no-files-found: error + script: ./gradlew connectedCheck From 59ec80b86e92436b368b11332021fed8897009e0 Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Mon, 23 Jun 2025 18:01:22 +0200 Subject: [PATCH 13/13] try again --- .github/workflows/build_test.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 26259e2ed13e..ae5543cd5426 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -133,7 +133,7 @@ jobs: path: | ~/.android/avd/* ~/.android/adb* - key: avd-${{ matrix.api-level }}-v1 + key: avd-${{ matrix.api-level }}-v2 - name: Enable KVM group perms run: | @@ -147,6 +147,7 @@ jobs: with: api-level: ${{ matrix.api-level }} arch: ${{ matrix.arch }} + target: google_apis force-avd-creation: false emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none disable-animations: false @@ -157,8 +158,8 @@ jobs: with: api-level: ${{ matrix.api-level }} arch: ${{ matrix.arch }} + target: google_apis force-avd-creation: false - emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none -no-snapshot-save + emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none disable-animations: true - target: google_apis script: ./gradlew connectedCheck