From: Russell Keith-Magee Date: Mon, 13 Jul 2026 22:38:43 +0000 (+0800) Subject: gh-153631: Move to `macos-26` runner for iOS (#153632) X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=2dc1a91af801ea896e21f6c6e6cc41f57e8268d9;p=thirdparty%2FPython%2Fcpython.git gh-153631: Move to `macos-26` runner for iOS (#153632) Switches iOS CI to use the macos-26 runner, and makes a small change to the iOS build script to improve build stability. xcodebuild doesn't guarantee that the CoreSimulatorService is running before starting a simulator. If the service isn't running, xcodebuild reports that no simulators are available, and fails to start the test app. However, simctl blocks until the simulator is available, and simctl is used to evaluate the default simulator. So - the iOS build script now unconditionally determines the default simulator, even if a specific simulator is requested. --- diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b541dbd0c23d..d247f99aefe1 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 build-emscripten: name: 'Emscripten' diff --git a/Platforms/Apple/testbed/__main__.py b/Platforms/Apple/testbed/__main__.py index b3eed38571d9..797b522678f9 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(