| name: Run instrumentation tests |
| |
| on: |
| push: |
| branches: |
| - android* |
| pull_request: |
| |
| concurrency: |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} |
| cancel-in-progress: true |
| |
| jobs: |
| instrumentation_tests: |
| runs-on: macos-11 |
| if: github.repository == 'seedvault-app/seedvault' |
| timeout-minutes: 80 |
| strategy: |
| fail-fast: false |
| matrix: |
| android_target: [ 33, 34 ] |
| emulator_type: [ aosp_atd ] |
| d2d_backup_test: [ true, false ] |
| steps: |
| - name: Checkout Code |
| uses: actions/checkout@v3 |
| |
| - uses: actions/setup-java@v3 |
| with: |
| distribution: 'adopt' |
| java-version: '17' |
| cache: 'gradle' |
| |
| - name: Build Release APK |
| run: ./gradlew :app:assembleRelease |
| |
| - name: Assemble tests |
| run: ./gradlew :app:assembleAndroidTest |
| |
| - name: Run tests |
| uses: Wandalen/wretry.action@v1.3.0 |
| with: |
| attempt_limit: 3 |
| action: reactivecircus/android-emulator-runner@v2 |
| with: | |
| api-level: ${{ matrix.android_target }} |
| target: ${{ matrix.emulator_type }} |
| arch: x86_64 |
| force-avd-creation: true |
| emulator-options: -cores 2 -writable-system -no-snapshot-load -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none |
| disk-size: '14G' |
| sdcard-path-or-size: '4096M' |
| disable-animations: true |
| script: | |
| ./app/development/scripts/provision_emulator.sh "test" "system-images;android-${{ matrix.android_target }};${{ matrix.emulator_type }};x86_64" |
| ./.github/scripts/run_tests.sh ${{ matrix.d2d_backup_test }} |
| |
| - name: Upload test results |
| if: always() |
| uses: actions/upload-artifact@v3 |
| with: |
| name: ${{ matrix.emulator_type }}-${{ matrix.android_target }}-results |
| path: seedvault_test_results/**/* |