Skip to content

Commit

Permalink
Don't cache AVD for e2e tests
Browse files Browse the repository at this point in the history
  • Loading branch information
stevesoltys committed Oct 11, 2023
1 parent e250214 commit b792ee0
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 57 deletions.
32 changes: 5 additions & 27 deletions .github/scripts/run_tests.sh
Original file line number Diff line number Diff line change
@@ -1,33 +1,11 @@
adb root
sleep 5
adb remount

echo "Installing Seedvault app..."
adb shell mkdir -p /system/priv-app/Seedvault
adb push app/build/outputs/apk/release/app-release.apk /system/priv-app/Seedvault/Seedvault.apk

echo "Installing Seedvault permissions..."
adb push permissions_com.stevesoltys.seedvault.xml /system/etc/permissions/privapp-permissions-seedvault.xml
adb push allowlist_com.stevesoltys.seedvault.xml /system/etc/sysconfig/allowlist-seedvault.xml

echo "Setting Seedvault transport..."
sleep 10
adb shell bmgr transport com.stevesoltys.seedvault.transport.ConfigurableBackupTransport

wget --quiet https://github.com/seedvault-app/seedvault-test-data/releases/download/1/backup.tar.gz
adb shell mkdir -p /sdcard/seedvault_baseline
adb push backup.tar.gz /sdcard/seedvault_baseline
adb wait-for-device
adb shell tar -xzf /sdcard/seedvault_baseline/backup.tar.gz --directory=/sdcard/seedvault_baseline
adb shell rm /sdcard/seedvault_baseline/backup.tar.gz

large_test_exit_code=0
./gradlew --stacktrace -Pinstrumented_test_size=large :app:connectedAndroidTest || large_test_exit_code=$?

adb pull /sdcard/seedvault_test_results

[ -n "$large_test_exit_code" ] && [ "$large_test_exit_code" -ne 0 ] && { echo 'Large tests failed.'; exit 1; }

medium_test_exit_code=0
./gradlew --stacktrace -Pinstrumented_test_size=medium :app:connectedAndroidTest || medium_test_exit_code=$?

adb pull /sdcard/seedvault_test_results

[ -n "$large_test_exit_code" ] && [ "$large_test_exit_code" -ne 0 ] && { echo 'Large test failed.'; exit 1; }
[ -n "$medium_test_exit_code" ] && [ "$medium_test_exit_code" -ne 0 ] && { echo 'Medium test failed.'; exit 1; }
[ -n "$medium_test_exit_code" ] && [ "$medium_test_exit_code" -ne 0 ] && { echo 'Medium tests failed.'; exit 1; }
4 changes: 4 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
name: Build
on: [push, pull_request]

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
build:
name: Build
Expand Down
39 changes: 9 additions & 30 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ concurrency:
jobs:
instrumentation_tests:
runs-on: macos-11
if: github.repository == 'seedvault-app/seedvault'
timeout-minutes: 80
strategy:
fail-fast: false
matrix:
Expand All @@ -35,54 +37,31 @@ jobs:
java-version: '17'
cache: 'gradle'

- name: AVD cache
uses: actions/cache@v3
id: avd-cache
with:
path: |
~/.android/avd/*
~/.android/adb*
key: avd-${{ matrix.emulator_type }}-${{ matrix.android_target }}

- name: Build Release APK
run: ./gradlew :app:assembleRelease

- name: Create AVD snapshot
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: reactivecircus/android-emulator-runner@v2
with:
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-${{ matrix.android_target }};${{ matrix.emulator_type }};x86_64"
echo "Generated AVD snapshot for caching."
- name: Assemble tests
run: ./gradlew :app:assembleAndroidTest

- name: Run tests
uses: Wandalen/[email protected]
with:
attempt_limit: 3
attempt_limit: 1
action: reactivecircus/android-emulator-runner@v2
with: |
api-level: ${{ matrix.android_target }}
target: ${{ matrix.emulator_type }}
arch: x86_64
force-avd-creation: false
emulator-options: -writable-system -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
profile: pixel_6a
force-avd-creation: true
emulator-options: -cores 3 -writable-system -no-snapshot-load -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
heap-size: '512M'
ram-size: '4096M'
disk-size: '14G'
sdcard-path-or-size: '4096M'
cores: 2
disable-animations: true
script: ./.github/scripts/run_tests.sh
disable-animations: false
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()
Expand Down

0 comments on commit b792ee0

Please sign in to comment.