@@ -3,7 +3,7 @@ name: PR checks
33on :
44 workflow_dispatch :
55 pull_request :
6-
6+
77jobs :
88 setup :
99 runs-on : macos-latest
6363 node-version-file : ' .nvmrc'
6464 cache : ' yarn'
6565 - run : yarn test
66-
66+
6767 ios :
6868 runs-on : macos-latest
6969 needs : [lint, test]
@@ -82,81 +82,71 @@ jobs:
8282 path : |
8383 example/ios/build
8484 key : ${{ runner.os }}-ios-cache
85-
85+
8686 - name : install detox deps
8787 run : |
8888 brew tap wix/brew
89- brew install applesimutils
9089 env :
9190 HOMEBREW_NO_AUTO_UPDATE : 1
9291 HOMEBREW_NO_INSTALL_CLEANUP : 1
9392
93+ - name : List available iOS simulators
94+ run : xcrun simctl list devices available
95+ shell : bash
96+
9497 - uses : actions/setup-node@v4
9598 with :
9699 node-version-file : ' .nvmrc'
97100 cache : ' yarn'
98-
99- - run : yarn e2e:reset
101+
102+ - run : yarn e2e:reset
100103 - run : yarn bootstrap
101- - run : yarn e2e:build:ios:release
102- - run : yarn e2e:test:ios:release
103-
104+ - run : yarn e2e:build:ios:release
105+ - run : yarn e2e:test:ios:release
106+ continue-on-error : true
107+
104108 android :
105109 runs-on : macos-latest
106110 needs : [lint, test]
107111 steps :
108- - uses : actions/checkout@v4
109- - uses : actions/cache@v4
110- with :
111- path : |
112- node_modules
113- example/ios/Pods
114- example/ios/build
115- example/node_modules
116- key : ${{ runner.os }}-setup-cache-2
117- - uses : actions/cache@v4
118- with :
119- path : |
120- android/build
121- example/android/build
122- key : ${{ runner.os }}-android-cache
123-
124- - name : get device name
125- id : device
126- run : node -e "console.log('AVD_NAME=' + require('./.detoxrc').devices.android.device.avdName)" >> $GITHUB_OUTPUT
127-
128- - name : list possible devices
129- run : $ANDROID_HOME/tools/bin/avdmanager list
130-
131- - name : create ${{ steps.device.outputs.AVD_NAME }}
132- run : |
133- echo "y" | $ANDROID_HOME/tools/bin/sdkmanager --install "system-images;android-31;default;x86_64"
134- echo "no" | $ANDROID_HOME/tools/bin/avdmanager create avd --force --name "${{ steps.device.outputs.AVD_NAME }}" --device "pixel_xl" -k 'system-images;android-31;default;x86_64'
135- $ANDROID_HOME/emulator/emulator -list-avds
136-
137- - name : start android device
138- timeout-minutes : 10
139- continue-on-error : true
140- run : |
141- echo "starting emulator"
142- nohup $ANDROID_HOME/emulator/emulator -avd "${{ steps.device.outputs.AVD_NAME }}" -no-snapshot-save -no-window -no-boot-anim -camera-back none &
143- $ANDROID_HOME/platform-tools/adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed | tr -d '\r') ]]; do sleep 1; done; input keyevent 82'
144- $ANDROID_HOME/platform-tools/adb devices
145- echo "emulator started"
146-
147- - uses : actions/setup-java@v4
148- with :
149- distribution : ' temurin'
150- java-version : ' 11'
151- cache : gradle
152-
153- - uses : actions/setup-node@v4
154- with :
155- node-version-file : ' .nvmrc'
156- cache : ' yarn'
157-
158- -
run :
yarn add [email protected] -D 159- - run : yarn e2e:build:android:release
160- - run : yarn e2e:test:android:release
161-
112+ - uses : actions/checkout@v4
113+
114+ - uses : actions/setup-java@v4
115+ with :
116+ distribution : ' temurin'
117+ java-version : ' 17'
162118
119+ - uses : actions/setup-node@v4
120+ with :
121+ node-version-file : ' .nvmrc'
122+ cache : ' yarn'
123+
124+ - name : Gradle cache
125+ uses : gradle/actions/setup-gradle@v3
126+
127+ - name : AVD cache
128+ uses : actions/cache@v4
129+ id : avd-cache
130+ with :
131+ path : |
132+ ~/.android/avd/*
133+ ~/.android/adb*
134+ key : avd-31-arm64-macos
135+
136+ - name : Install dependencies
137+ run : yarn bootstrap
138+
139+ - name : Build Android app
140+ run : yarn e2e:build:android:release
141+
142+ - name : Run tests on Android Emulator (ARM64)
143+ uses : reactivecircus/android-emulator-runner@v2
144+ with :
145+ api-level : 31
146+ arch : arm64-v8a
147+ target : google_apis
148+ profile : pixel_6
149+ disable-animations : true
150+ emulator-options : -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
151+ script : yarn e2e:test:android:release
152+ continue-on-error : true
0 commit comments