1- name : iOS Build & Test
1+ name : iOS Detox
22
33on :
44 push :
@@ -10,13 +10,13 @@ permissions:
1010 contents : read
1111
1212jobs :
13- build-ios :
14- name : Build iOS App
13+ test :
14+ name : Test
1515 runs-on : depot-macos-15 # Use depot runner, fallback to: macos-15
16- timeout-minutes : 30
16+ timeout-minutes : 45
1717
1818 steps :
19- - name : Checkout code
19+ - name : Checkout
2020 uses : actions/checkout@v6.0.0
2121
2222 - name : Setup Node.js
@@ -31,77 +31,34 @@ jobs:
3131 - name : Setup Expo
3232 run : npx expo install
3333
34- - name : Prebuild iOS native project
34+ - name : Prebuild iOS
3535 run : npx expo prebuild --platform ios --clean
3636
37- - name : Setup Ruby for CocoaPods
37+ - name : Setup Ruby
3838 uses : ruby/setup-ruby@v1.268.0
3939 with :
4040 ruby-version : " 3.2"
4141 bundler-cache : false
4242
43- - name : Install CocoaPods dependencies
43+ - name : Install CocoaPods
4444 working-directory : ios
4545 run : pod install
4646
47- - name : Build iOS app for Detox
48- run : |
49- xcodebuild -workspace ios/evcc.xcworkspace \
50- -scheme evcc \
51- -configuration Release \
52- -sdk iphonesimulator \
53- -destination 'platform=iOS Simulator,name=iPhone 16' \
54- -derivedDataPath ios/build \
55- build-for-testing
56-
57- - name : Upload iOS app artifact
58- uses : actions/upload-artifact@v5.0.0
59- with :
60- name : ios-app
61- path : ios/build/Build/Products/Release-iphonesimulator/evcc.app
62- retention-days : 1
63-
64- test-ios :
65- name : Run iOS E2E Tests
66- runs-on : depot-macos-15 # Use depot runner, fallback to: macos-15
67- needs : build-ios
68- timeout-minutes : 30
69-
70- steps :
71- - name : Checkout code
72- uses : actions/checkout@v6.0.0
73-
74- - name : Setup Node.js
75- uses : actions/setup-node@v6.0.0
76- with :
77- node-version : " 24"
78- cache : " npm"
79-
80- - name : Install dependencies
81- run : npm ci
82-
83- - name : Download iOS app artifact
84- uses : actions/download-artifact@v6.0.0
85- with :
86- name : ios-app
87- path : ios/build/Build/Products/Release-iphonesimulator/evcc.app
88-
89- - name : Install Detox CLI
90- run : npm install -g detox-cli
91-
92- - name : Prepare simulator
47+ - name : Boot simulator
9348 run : |
9449 xcrun simctl boot "iPhone 16" || true
9550 xcrun simctl list devices | grep "iPhone 16"
9651
97- - name : Run Detox tests
98- run : detox test --configuration ios.sim.release --cleanup
52+ - name : Build
53+ run : npx detox build --configuration ios.sim.release
54+
55+ - name : Test
56+ run : npx detox test --configuration ios.sim.release --cleanup
9957
100- - name : Upload test artifacts on failure
58+ - name : Upload artifacts on failure
10159 if : failure()
10260 uses : actions/upload-artifact@v5.0.0
10361 with :
10462 name : detox-test-artifacts
105- path : |
106- e2e/artifacts/
63+ path : e2e/artifacts/
10764 retention-days : 7
0 commit comments