|
23 | 23 | - ubuntu-latest |
24 | 24 | variant: |
25 | 25 | - android-tests |
26 | | - exclude: |
27 | | - # iOS tests are only supported on macOS runners |
28 | | - - runner: ubuntu-latest |
29 | | - variant: ios-tests |
30 | | - - runner: windows-latest |
31 | | - variant: ios-tests |
32 | | - # The reactivecircus/android-emulator-runner action does not support Windows runners |
33 | | - # See https://github.com/marketplace/actions/android-emulator-runner#github-action---android-emulator-runner |
34 | | - - runner: windows-latest |
35 | | - variant: android-tests |
36 | | - # MacOS is slow and expensive at running Android emulators |
37 | | - - runner: macos-latest |
38 | | - variant: android-tests |
39 | 26 |
|
40 | 27 | name: Test (${{ matrix.variant }} on ${{ matrix.runner }}) |
41 | 28 | runs-on: ${{ matrix.runner }} |
|
53 | 40 | uses: android-actions/setup-android@v3 |
54 | 41 | with: |
55 | 42 | packages: tools platform-tools ndk;${{ env.NDK_VERSION }} |
56 | | - - run: rustup target add x86_64-linux-android aarch64-linux-android armv7-linux-androideabi i686-linux-android aarch64-apple-ios-sim |
57 | 43 | - run: npm ci |
58 | | - - run: npm run bootstrap |
59 | | - # Unit tests |
60 | | - - if: matrix.variant == 'unit-tests' |
61 | | - name: Run tests (Unit) |
62 | | - run: npm test |
63 | | - # Integration tests (iOS) |
64 | | - - if: matrix.variant == 'ios-tests' |
65 | | - run: npm run pod-install |
66 | | - working-directory: apps/test-app |
67 | | - - if: matrix.variant == 'ios-tests' |
68 | | - name: Run tests (iOS) |
69 | | - run: npm run test:ios |
70 | | - working-directory: apps/test-app |
71 | | - # Integration tests (Android) |
72 | | - - name: Clone patched Hermes version |
73 | | - if: matrix.variant == 'android-tests' |
74 | | - shell: bash |
75 | | - run: | |
76 | | - REACT_NATIVE_OVERRIDE_HERMES_DIR=$(npx react-native-node-api vendor-hermes --silent) |
77 | | - echo "REACT_NATIVE_OVERRIDE_HERMES_DIR=$REACT_NATIVE_OVERRIDE_HERMES_DIR" >> $GITHUB_ENV |
78 | | - working-directory: apps/test-app |
79 | 44 | - name: Setup Android Emulator cache |
80 | 45 | if: matrix.variant == 'android-tests' |
81 | 46 | uses: actions/cache@v4 |
|
92 | 57 | echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules |
93 | 58 | sudo udevadm control --reload-rules |
94 | 59 | sudo udevadm trigger --name-match=kvm |
95 | | - - name: Build weak-node-api for all architectures |
96 | | - if: matrix.variant == 'android-tests' |
97 | | - run: npm run build-weak-node-api -- --android |
98 | | - working-directory: packages/host |
99 | | - - name: Build ferric-example for all architectures |
100 | | - if: matrix.variant == 'android-tests' |
101 | | - run: npm run build -- --android |
102 | | - working-directory: packages/ferric-example |
103 | 60 | - name: Run tests (Android) |
104 | 61 | if: matrix.variant == 'android-tests' |
105 | 62 | timeout-minutes: 75 |
|
0 commit comments