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: [ default ] 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 - name: Upload test results if: always() uses: actions/upload-artifact@v3 with: name: ${{ matrix.emulator_type }}-${{ matrix.android_target }}-results path: seedvault_test_results/**/*