@@ -168,7 +168,12 @@ jobs:
168168
169169 test :
170170 name : Test
171- runs-on : macos-14
171+ # Runtime suite runs on Xcode 26 / iOS 26 — the combo verified passing
172+ # locally. iOS 17.x is intentionally NOT used: a worker-teardown stress spec
173+ # deadlocks the JS thread there (hangs the whole suite), a bug we don't chase
174+ # on an OS we don't ship-test. Pinned (not latest-stable) so the runtime suite
175+ # is deterministic; bump to "27" when Xcode 27 ships.
176+ runs-on : macos-15
172177 needs : build
173178 steps :
174179 - name : Harden the runner (Audit all outbound calls)
@@ -177,7 +182,10 @@ jobs:
177182 egress-policy : audit
178183 - uses : maxim-lobanov/setup-xcode@ed7a3b1fda3918c0306d1b724322adc0b8cc0a90 # v1.7.0
179184 with :
180- xcode-version : ${{env.XCODE_VERSION}}
185+ # Pin to Xcode 26 (latest 26.x on the runner). NOT the ^15.0 release-build
186+ # pin — Sequoia/Tahoe ship no Xcode 15. OS=latest below then resolves to
187+ # the iOS 26 runtime this Xcode bundles.
188+ xcode-version : " 26"
181189 - uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
182190 with :
183191 submodules : true
@@ -224,9 +232,9 @@ jobs:
224232 # TestRunnerTests.swift) need more than 20m headroom per attempt.
225233 timeout_minutes : 40
226234 max_attempts : 2
227- command : set -o pipefail && xcodebuild -project v8ios.xcodeproj -scheme TestRunner -resultBundlePath $TEST_FOLDER/test_results -destination platform\=iOS\ Simulator,OS\=17.2 ,name\=iPhone\ 15 \ Pro\ Max build test | xcpretty
235+ command : set -o pipefail && xcodebuild -project v8ios.xcodeproj -scheme TestRunner -resultBundlePath $TEST_FOLDER/test_results -destination platform\=iOS\ Simulator,OS\=latest ,name\=iPhone\ 16 \ Pro build test | xcpretty
228236 on_retry_command : rm -rf $TEST_FOLDER/test_results* && xcrun simctl shutdown all
229- new_command_on_retry : xcodebuild -project v8ios.xcodeproj -scheme TestRunner -resultBundlePath $TEST_FOLDER/test_results -destination platform\=iOS\ Simulator,OS\=17.2 ,name\=iPhone\ 15 \ Pro\ Max build test
237+ new_command_on_retry : xcodebuild -project v8ios.xcodeproj -scheme TestRunner -resultBundlePath $TEST_FOLDER/test_results -destination platform\=iOS\ Simulator,OS\=latest ,name\=iPhone\ 16 \ Pro build test
230238 # When the runtime suite fails it is almost always because the in-app
231239 # Jasmine run died before POSTing results (crash or hang). The xcresult is
232240 # black-box and captures nothing from inside the app, so collect the two
@@ -249,7 +257,7 @@ jobs:
249257 # booting it so the persisted log store can be collected.
250258 UDID="$(xcrun simctl list devices booted | grep -oE '[0-9A-Fa-f-]{36}' | head -1)"
251259 if [ -z "$UDID" ]; then
252- UDID="$(xcrun simctl list devices 'iPhone 15 Pro Max ' | grep -oE '[0-9A-Fa-f-]{36}' | head -1)"
260+ UDID="$(xcrun simctl list devices 'iPhone 16 Pro' | grep -oE '[0-9A-Fa-f-]{36}' | head -1)"
253261 [ -n "$UDID" ] && xcrun simctl boot "$UDID" 2>/dev/null || true
254262 [ -n "$UDID" ] && xcrun simctl bootstatus "$UDID" 2>/dev/null || true
255263 fi
0 commit comments