diff --git a/.github/workflows/client.yml b/.github/workflows/build.yml similarity index 100% rename from .github/workflows/client.yml rename to .github/workflows/build.yml diff --git a/.github/workflows/e2e.yml b/.github/workflows/test.yml similarity index 79% rename from .github/workflows/e2e.yml rename to .github/workflows/test.yml index 2fc63553e..c5117aff0 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/test.yml @@ -1,4 +1,4 @@ -name: Run end-to-end tests +name: Run instrumented tests on: push: @@ -11,7 +11,7 @@ on: - '**/*.properties' - '**/*.kt' - '**/*.xml' - - '.github/workflows/e2e.yml' + - '.github/workflows/test.yml' jobs: instrumentation_tests: @@ -19,7 +19,11 @@ jobs: strategy: fail-fast: false matrix: + android_target: [33, 34] emulator_type: [default, google_apis] + exclude: + - android_target: 34 + emulator_type: default steps: - name: Checkout Code uses: actions/checkout@v3 @@ -37,7 +41,7 @@ jobs: path: | ~/.android/avd/* ~/.android/adb* - key: aosp-${{ matrix.emulator_type }}-33 + key: aosp-${{ matrix.emulator_type }}-${{ matrix.android_target }}-${{ runner.os }} - name: Build Release APK run: ./gradlew :app:assembleRelease @@ -46,14 +50,14 @@ jobs: if: steps.avd-cache.outputs.cache-hit != 'true' uses: reactivecircus/android-emulator-runner@v2 with: - api-level: 33 + api-level: ${{ matrix.android_target }} target: ${{ matrix.emulator_type }} arch: x86_64 force-avd-creation: false emulator-options: -writable-system -no-snapshot-load -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none disable-animations: true script: | - ./app/development/scripts/provision_emulator.sh "test" "system-images;android-33;${{ matrix.emulator_type }};x86_64" + ./app/development/scripts/provision_emulator.sh "test" "system-images;android-${{ matrix.android_target }};${{ matrix.emulator_type }};x86_64" echo "Generated AVD snapshot for caching." - name: Assemble tests @@ -62,7 +66,7 @@ jobs: - name: Run tests uses: reactivecircus/android-emulator-runner@v2 with: - api-level: 33 + api-level: ${{ matrix.android_target }} target: ${{ matrix.emulator_type }} arch: x86_64 force-avd-creation: false @@ -98,12 +102,16 @@ jobs: adb shell tar xzf /sdcard/seedvault_baseline/backup.tar.gz --directory=/sdcard/seedvault_baseline adb shell rm /sdcard/seedvault_baseline/backup.tar.gz - gradle_exit_code=0 - ./gradlew --stacktrace -Pinstrumented_test_size=large :app:connectedAndroidTest || gradle_exit_code=$? + large_test_exit_code=0 + ./gradlew --stacktrace -Pinstrumented_test_size=large :app:connectedAndroidTest || large_test_exit_code=$? + + medium_test_exit_code=0 + ./gradlew --stacktrace -Pinstrumented_test_size=medium :app:connectedAndroidTest || medium_test_exit_code=$? adb pull /sdcard/seedvault_test_videos - if [ $gradle_exit_code -ne 0 ]; then echo 'Gradle test failed.'; exit 0; fi + if [ $large_test_exit_code -ne 0 ]; then echo 'Gradle test failed.'; exit 0; fi + if [ $medium_test_exit_code -ne 0 ]; then echo 'Gradle test failed.'; exit 0; fi - name: Upload screenshots and videos if: always() diff --git a/app/development/DEVELOPMENT.md b/app/development/DEVELOPMENT.md index 7c083710f..06dd61f1e 100644 --- a/app/development/DEVELOPMENT.md +++ b/app/development/DEVELOPMENT.md @@ -39,7 +39,7 @@ This task depends on `app:assembleRelease` and runs the script in `scripts/insta ./app/development/scripts/install_app.sh ``` -There's also an Andriod Studio [runtime configuration](https://developer.android.com/studio/run/rundebugconfig) `app-emulator` which will build, install, and automatically launch the `com.stevesoltys.seedvault.settings.SettingsActivity` as if you clicked `Backup` in settings. +There's also an Android Studio [runtime configuration](https://developer.android.com/studio/run/rundebugconfig) `app-emulator` which will build, install, and automatically launch the `com.stevesoltys.seedvault.settings.SettingsActivity` as if you clicked `Backup` in settings. ### Notes diff --git a/app/src/androidTest/java/com/stevesoltys/seedvault/e2e/LargeRestoreTestBase.kt b/app/src/androidTest/java/com/stevesoltys/seedvault/e2e/LargeRestoreTestBase.kt index 02305fc09..3d74aedea 100644 --- a/app/src/androidTest/java/com/stevesoltys/seedvault/e2e/LargeRestoreTestBase.kt +++ b/app/src/androidTest/java/com/stevesoltys/seedvault/e2e/LargeRestoreTestBase.kt @@ -113,6 +113,8 @@ internal interface LargeRestoreTestBase : LargeTestBase { val restoreResultValue = spyRestoreViewModel.installResult.value ?: error("Restore APKs timed out") + // TODO: Fix this, with current test an app or two breaks on install with AOSP image. + // Just need to update the test data to work with the AOSP image. // assert(!restoreResultValue.hasFailed) { "Failed to install packages" } }