Select an iPhone simulator matching the active Xcode SDK
iOS build and tests / simulator (push) Has been cancelled

This commit is contained in:
2026-09-10 09:16:59 +03:00
parent 6174be5610
commit a761431bf5
2 changed files with 5 additions and 3 deletions
+1 -1
View File
@@ -30,7 +30,7 @@ jobs:
- name: Choose available iPhone simulator - name: Choose available iPhone simulator
run: | run: |
xcrun simctl list devices available --json > /tmp/musicbridge-simulators.json xcrun simctl list devices available --json > /tmp/musicbridge-simulators.json
python3 tools/select_simulator.py /tmp/musicbridge-simulators.json >> "$GITHUB_ENV" python3 tools/select_simulator.py /tmp/musicbridge-simulators.json "$(xcrun --sdk iphonesimulator --show-sdk-version)" >> "$GITHUB_ENV"
- name: Build and run XCTest - name: Build and run XCTest
shell: bash shell: bash
run: | run: |
+4 -2
View File
@@ -5,11 +5,13 @@ import uuid
with open(sys.argv[1], encoding="utf-8") as stream: with open(sys.argv[1], encoding="utf-8") as stream:
runtimes = json.load(stream)["devices"] runtimes = json.load(stream)["devices"]
sdk_version = sys.argv[2] if len(sys.argv) > 2 else None
for runtime in sorted(runtimes, reverse=True): for runtime in sorted(runtimes, reverse=True):
if ".iOS-" not in runtime: if ".iOS-" not in runtime or (sdk_version and not runtime.endswith(".iOS-" + sdk_version.replace(".", "-"))):
continue continue
for device in runtimes[runtime]: for device in runtimes[runtime]:
if device.get("isAvailable") and device.get("name", "").startswith("iPhone"): if device.get("isAvailable") and device.get("name", "").startswith("iPhone"):
print("SIMULATOR_ID=" + str(uuid.UUID(device["udid"]))) uuid.UUID(device["udid"]) # Validate without changing the case expected by xcodebuild.
print("SIMULATOR_ID=" + device["udid"])
sys.exit(0) sys.exit(0)
sys.exit("No available iPhone simulator in selected Xcode runtime.") sys.exit("No available iPhone simulator in selected Xcode runtime.")