From e8d456dff59ba81cf90153e1c9759f2e620e7ebc Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Mon, 13 Jul 2026 07:12:08 +0800 Subject: [PATCH 1/4] Move to macos-26 runner for iOS. --- .github/workflows/build.yml | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b541dbd0c23d326..9012910882e75fb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -361,23 +361,14 @@ jobs: needs: build-context if: needs.build-context.outputs.run-ios == 'true' timeout-minutes: 60 - runs-on: macos-14 + runs-on: macos-26 steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: persist-credentials: false - # GitHub recommends explicitly selecting the desired Xcode version: - # https://github.com/actions/runner-images/issues/12541#issuecomment-3083850140 - # This became a necessity as a result of - # https://github.com/actions/runner-images/issues/12541 and - # https://github.com/actions/runner-images/issues/12751. - - name: Select Xcode version - run: | - sudo xcode-select --switch /Applications/Xcode_15.4.app - - name: Build and test - run: python3 Platforms/Apple ci iOS --fast-ci --simulator 'iPhone SE (3rd generation),OS=17.5' + run: python3 Platforms/Apple ci iOS --fast-ci --simulator 'iPhone 17e,OS=26.5' build-emscripten: name: 'Emscripten' From 1f71baca94ee69966a78b78542230f8c7de5d7f0 Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Mon, 13 Jul 2026 08:41:40 +0800 Subject: [PATCH 2/4] Add diagnostic details on available destinations. --- .github/workflows/build.yml | 3 +++ Platforms/Apple/testbed/__main__.py | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9012910882e75fb..c53f5721477b290 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -367,6 +367,9 @@ jobs: with: persist-credentials: false + - name: List simulators + run: xcrun simctl list + - name: Build and test run: python3 Platforms/Apple ci iOS --fast-ci --simulator 'iPhone 17e,OS=26.5' diff --git a/Platforms/Apple/testbed/__main__.py b/Platforms/Apple/testbed/__main__.py index b3eed38571d9708..c3b0b36092c2454 100644 --- a/Platforms/Apple/testbed/__main__.py +++ b/Platforms/Apple/testbed/__main__.py @@ -74,6 +74,12 @@ def xcode_test(location: Path, platform: str, simulator: str, verbose: bool): ] verbosity_args = [] if verbose else ["-quiet"] + print("Diagnostic - show xcodebuild destinations...") + subprocess.run( + ["xcodebuild", "-scheme", f"{platform}Testbed", "-showdestinations"], + check=True, + ) + print("Building test project...") subprocess.run( ["xcodebuild", "build-for-testing"] + args + verbosity_args, From 078ed9a5c9bc577cc4c60f1f457d2bd7561a923f Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Mon, 13 Jul 2026 09:31:04 +0800 Subject: [PATCH 3/4] Use the simulator discovery process. --- .github/workflows/build.yml | 5 +---- Platforms/Apple/testbed/__main__.py | 6 ------ 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c53f5721477b290..d247f99aefe174c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -367,11 +367,8 @@ jobs: with: persist-credentials: false - - name: List simulators - run: xcrun simctl list - - name: Build and test - run: python3 Platforms/Apple ci iOS --fast-ci --simulator 'iPhone 17e,OS=26.5' + run: python3 Platforms/Apple ci iOS --fast-ci build-emscripten: name: 'Emscripten' diff --git a/Platforms/Apple/testbed/__main__.py b/Platforms/Apple/testbed/__main__.py index c3b0b36092c2454..b3eed38571d9708 100644 --- a/Platforms/Apple/testbed/__main__.py +++ b/Platforms/Apple/testbed/__main__.py @@ -74,12 +74,6 @@ def xcode_test(location: Path, platform: str, simulator: str, verbose: bool): ] verbosity_args = [] if verbose else ["-quiet"] - print("Diagnostic - show xcodebuild destinations...") - subprocess.run( - ["xcodebuild", "-scheme", f"{platform}Testbed", "-showdestinations"], - check=True, - ) - print("Building test project...") subprocess.run( ["xcodebuild", "build-for-testing"] + args + verbosity_args, From e55abf8651c270373f069a59b08ca2240b4b019a Mon Sep 17 00:00:00 2001 From: Russell Keith-Magee Date: Mon, 13 Jul 2026 16:34:13 +0800 Subject: [PATCH 4/4] Explicitly determine default simulator to ensure simd is available. --- Platforms/Apple/testbed/__main__.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Platforms/Apple/testbed/__main__.py b/Platforms/Apple/testbed/__main__.py index b3eed38571d9708..797b522678f9d74 100644 --- a/Platforms/Apple/testbed/__main__.py +++ b/Platforms/Apple/testbed/__main__.py @@ -271,8 +271,14 @@ def run_testbed( update_test_plan(location, platform, args) print(" done.") + # xcodebuild doesn't guarantee that the CoreSimulatorService daemon is + # running prior to using a simulator, but calling `xcrun simctl list` does. + # Determining the default simulator that *would* be used is a cheap action; + # so use that as a way to ensure that the CoreSimulatorService daemon is + # running. + default_simulator = select_simulator_device(platform) if simulator is None: - simulator = select_simulator_device(platform) + simulator = default_simulator print(f"Running test on {simulator}") xcode_test(