Skip to content

Commit c024a5e

Browse files
committed
ci: modern unit test runner target
[skip ci]
1 parent 91e51cd commit c024a5e

1 file changed

Lines changed: 13 additions & 5 deletions

File tree

.github/workflows/npm_release.yml

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)