|
| 1 | +name: Test Android Example App |
| 2 | + |
| 3 | +on: [push, pull_request] |
| 4 | + |
| 5 | +jobs: |
| 6 | + react-native-android: |
| 7 | + runs-on: macos-latest |
| 8 | + if: "!contains(github.event.head_commit.message, '[skip ci]')" |
| 9 | + |
| 10 | + steps: |
| 11 | + - name: Checkout project |
| 12 | + uses: actions/checkout@v1 |
| 13 | + |
| 14 | + - name: Specify node version |
| 15 | + uses: actions/setup-node@v1 |
| 16 | + with: |
| 17 | + node-version: 12 |
| 18 | + |
| 19 | + - name: Use specific Java version for sdkmanager to work |
| 20 | + uses: joschi/setup-jdk@v1 |
| 21 | + with: |
| 22 | + java-version: 'openjdk8' |
| 23 | + architecture: 'x64' |
| 24 | + |
| 25 | + - name: Setup Android emulator |
| 26 | + run: | |
| 27 | + echo y | sudo $ANDROID_HOME/tools/bin/sdkmanager "system-images;android-28;google_apis;x86" > /dev/null |
| 28 | + $ANDROID_HOME/tools/bin/avdmanager -s create avd -n emu -k "system-images;android-28;google_apis;x86" -b "x86" -c 1G -d 7 -f |
| 29 | +
|
| 30 | + - name: Install node_modules |
| 31 | + working-directory: example/RNBackgroundExample/ |
| 32 | + run: |
| 33 | + yarn install --frozen-lockfile |
| 34 | + |
| 35 | + - name: Deploy |
| 36 | + working-directory: example/RNBackgroundExample/ |
| 37 | + run: |
| 38 | + yarn e2e/deploy/android |
| 39 | + |
| 40 | + - name: Start Emulator |
| 41 | + working-directory: example/RNBackgroundExample/ |
| 42 | + timeout-minutes: 5 |
| 43 | + run: | |
| 44 | + export PATH=$PATH:$ANDROID_HOME/platform-tools |
| 45 | + $ANDROID_HOME/emulator/emulator @emu -noaudio -no-boot-anim -netdelay none -accel on -no-snapshot & |
| 46 | + adb wait-for-device; adb shell 'while [[ -z $(getprop sys.boot_completed) ]]; do sleep 1; done;'; adb shell wm dismiss-keyguard |
| 47 | +
|
| 48 | + - name: Android test |
| 49 | + working-directory: example/RNBackgroundExample/ |
| 50 | + timeout-minutes: 8 |
| 51 | + run: | |
| 52 | + mkdir -p ./artifacts |
| 53 | + node e2e/start-server.js & |
| 54 | + adb reverse tcp:8080 tcp:8080 |
| 55 | + yarn e2e/test/android --record-videos failing |
| 56 | +
|
| 57 | + - uses: actions/upload-artifact@master |
| 58 | + name: Provide videos of failed E2E tests |
| 59 | + if: failure() |
| 60 | + with: |
| 61 | + name: android-failing-e2e-videos |
| 62 | + path: example/RNBackgroundExample/artifacts |
0 commit comments