Skip to content

Commit 588dd7c

Browse files
authored
chore(ci): Replace latest simulator OS with deterministic versions (#6053)
1 parent 348848e commit 588dd7c

File tree

16 files changed

+182
-72
lines changed

16 files changed

+182
-72
lines changed

.github/workflows/build.yml

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -169,9 +169,9 @@ jobs:
169169
- run: |
170170
./scripts/sentry-xcodebuild.sh \
171171
--platform iOS \
172-
--os 18.5 \
172+
--os 18.4 \
173173
--command build \
174-
--device "iPhone 16" \
174+
--device "iPhone 16 Pro" \
175175
--configuration DebugV9
176176
- name: Archiving Raw Build Logs
177177
uses: actions/upload-artifact@v4
@@ -188,20 +188,21 @@ jobs:
188188
name: Check no UIKit linkage (DebugWithoutUIKit)
189189
if: github.event_name != 'pull_request' || needs.files-changed.outputs.run_build_for_prs == 'true'
190190
needs: files-changed
191-
runs-on: macos-14
191+
runs-on: macos-15
192192
steps:
193193
- uses: actions/checkout@v5
194194

195195
- name: Build for Debug
196196
run: |
197197
./scripts/sentry-xcodebuild.sh \
198198
--platform iOS \
199-
--os latest \
199+
--os 18.4 \
200200
--ref ${{ github.ref }} \
201201
--command build \
202-
--device "iPhone 15" \
202+
--device "iPhone 16 Pro" \
203203
--configuration DebugWithoutUIKit \
204204
--derived-data uikit-check-build
205+
205206
- name: Ensure UIKit is not linked
206207
run: ./scripts/check-uikit-linkage.sh DebugWithoutUIKit uikit-check-build unlinked SentryWithoutUIKit
207208

@@ -213,20 +214,21 @@ jobs:
213214
name: Check no UIKit linkage (ReleaseWithoutUIKit)
214215
if: github.event_name != 'pull_request' || needs.files-changed.outputs.run_build_for_prs == 'true'
215216
needs: files-changed
216-
runs-on: macos-14
217+
runs-on: macos-15
217218
steps:
218219
- uses: actions/checkout@v5
219220

220221
- name: Build for Release
221222
run: |
222223
./scripts/sentry-xcodebuild.sh \
223224
--platform iOS \
224-
--os latest \
225+
--os 18.4 \
225226
--ref ${{ github.ref }} \
226227
--command build \
227-
--device "iPhone 15" \
228+
--device "iPhone 16 Pro" \
228229
--configuration ReleaseWithoutUIKit \
229230
--derived-data uikit-check-build
231+
230232
- name: Ensure UIKit is not linked
231233
run: ./scripts/check-uikit-linkage.sh ReleaseWithoutUIKit uikit-check-build unlinked SentryWithoutUIKit
232234

@@ -238,20 +240,21 @@ jobs:
238240
name: Check UIKit linkage (Debug)
239241
if: github.event_name != 'pull_request' || needs.files-changed.outputs.run_build_for_prs == 'true'
240242
needs: files-changed
241-
runs-on: macos-14
243+
runs-on: macos-15
242244
steps:
243245
- uses: actions/checkout@v5
244246

245247
- name: Build for Debug
246248
run: |
247249
./scripts/sentry-xcodebuild.sh \
248250
--platform iOS \
249-
--os latest \
251+
--os 18.4 \
250252
--ref ${{ github.ref }} \
251253
--command build \
252-
--device "iPhone 15" \
254+
--device "iPhone 16 Pro" \
253255
--configuration Debug \
254256
--derived-data uikit-check-build
257+
255258
- name: Ensure UIKit is linked
256259
run: ./scripts/check-uikit-linkage.sh Debug uikit-check-build linked Sentry
257260

@@ -263,20 +266,21 @@ jobs:
263266
name: Check UIKit linkage (Release)
264267
if: github.event_name != 'pull_request' || needs.files-changed.outputs.run_build_for_prs == 'true'
265268
needs: files-changed
266-
runs-on: macos-14
269+
runs-on: macos-15
267270
steps:
268271
- uses: actions/checkout@v5
269272

270273
- name: Build for Release
271274
run: |
272275
./scripts/sentry-xcodebuild.sh \
273276
--platform iOS \
274-
--os latest \
277+
--os 18.4 \
275278
--ref ${{ github.ref }} \
276279
--command build \
277-
--device "iPhone 15" \
280+
--device "iPhone 16 Pro" \
278281
--configuration Release \
279282
--derived-data uikit-check-build
283+
280284
- name: Ensure UIKit is linked
281285
run: ./scripts/check-uikit-linkage.sh Release uikit-check-build linked Sentry
282286

@@ -311,10 +315,10 @@ jobs:
311315
run: |
312316
./scripts/sentry-xcodebuild.sh \
313317
--platform iOS \
314-
--os latest \
318+
--os 18.4 \
315319
--ref ${{ github.ref }} \
316320
--command build \
317-
--device "iPhone 16" \
321+
--device "iPhone 16 Pro" \
318322
--configuration Debug
319323
320324
- name: Debug Xcode environment

.github/workflows/codeql-analysis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ jobs:
6060
-workspace Sentry.xcworkspace \
6161
-scheme Sentry \
6262
-configuration Release \
63-
-destination platform="iOS Simulator,OS=latest,name=iPhone 14 Pro" \
63+
-destination platform="iOS Simulator,OS=16.4,name=iPhone 14 Pro" \
6464
build 2>&1 |
6565
tee raw-analyze-output.log |
6666
xcbeautify

.github/workflows/test-cross-platform.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ jobs:
9090
env:
9191
SCHEME: RNSentryCocoaTester
9292
CONFIGURATION: Release
93-
DESTINATION: "platform=iOS Simulator,OS=latest,name=iPhone 16"
93+
DESTINATION: "platform=iOS Simulator,OS=17.5,name=iPhone 15 Pro"
9494
run: |
9595
set -o pipefail
9696
env NSUnbufferedIO=YES \
@@ -101,7 +101,7 @@ jobs:
101101
102102
- name: Run CI Diagnostics
103103
if: failure()
104-
run: ./scripts/ci-diagnostics.sh
104+
run: ./sentry-cocoa/scripts/ci-diagnostics.sh
105105

106106
test_cross_platform-required-check:
107107
needs:

.github/workflows/test.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -111,25 +111,25 @@ jobs:
111111
platform: "iOS"
112112
xcode: "14.3.1"
113113
test-destination-os: "16.4"
114-
device: "iPhone 14"
114+
device: "iPhone 14 Pro"
115115
scheme: "Sentry"
116116

117117
# iOS 17
118118
- name: iOS 17 Sentry
119119
runs-on: macos-14
120120
platform: "iOS"
121121
xcode: "15.4"
122-
test-destination-os: "17.2"
123-
device: "iPhone 15"
122+
test-destination-os: "17.5"
123+
device: "iPhone 15 Pro"
124124
scheme: "Sentry"
125125

126126
# iOS 18
127127
- name: iOS 18 Sentry
128128
runs-on: macos-15
129129
platform: "iOS"
130130
xcode: "16.4"
131-
test-destination-os: "18.5"
132-
device: "iPhone 16"
131+
test-destination-os: "18.4"
132+
device: "iPhone 16 Pro"
133133
scheme: "Sentry"
134134

135135
# We don't run the unit tests on macOS 13 cause we run them on all on GH actions available iOS versions.
@@ -186,16 +186,16 @@ jobs:
186186
runs-on: macos-14
187187
platform: "iOS"
188188
xcode: "15.4"
189-
test-destination-os: "17.2"
190-
device: "iPhone 15"
189+
test-destination-os: "17.5"
190+
device: "iPhone 15 Pro"
191191
scheme: "SentrySwiftUI"
192192

193193
# tvOS 18
194194
- name: tvOS 18 Sentry
195195
runs-on: macos-15
196196
platform: "tvOS"
197197
xcode: "16.4"
198-
test-destination-os: "18.5"
198+
test-destination-os: "18.4"
199199
scheme: "Sentry"
200200

201201
steps:

.github/workflows/ui-tests-critical.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ jobs:
5656

5757
# macos-14 iOS 17 not included due to the XCUIServerNotFound errors causing flaky tests
5858

59-
# As of 14th August 2025, the preinstalled iOS simulator version is 18.5 for macOS 15 and Xcode 16.4; see
59+
# As of 14th August 2025, the preinstalled iOS simulator version is 18.4 for macOS 15 and Xcode 16.4; see
6060
# https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md#installed-sdks
6161
- name: iOS 18
6262
platform:

.github/workflows/ui-tests.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ jobs:
6464
xcode_version: 16.4
6565
build_with_make: true
6666
macos_version: macos-15
67-
fastlane_command_extra_arguments: device:iPhone 16 (18.5)
67+
fastlane_command_extra_arguments: device:iPhone 16 (18.4)
6868
codecov_test_analytics: true
6969
secrets:
7070
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
@@ -81,15 +81,15 @@ jobs:
8181
- name: iOS 16
8282
runs-on: macos-13
8383
xcode: "14.3.1"
84-
device: iPhone 14 (16.4)
84+
device: iPhone 14 Pro (16.4)
8585
- name: iOS 17
8686
runs-on: macos-14
8787
xcode: "15.4"
88-
device: iPhone 15 (17.5)
88+
device: iPhone 15 Pro (17.5)
8989
- name: iOS 18
9090
runs-on: macos-15
9191
xcode: "16.4"
92-
device: iPhone 16 (18.5)
92+
device: iPhone 16 Pro (18.4)
9393
with:
9494
fastlane_command: ui_tests_ios_swift
9595
fastlane_command_extra_arguments: device:${{matrix.device}}
@@ -108,7 +108,7 @@ jobs:
108108
uses: ./.github/workflows/ui-tests-common.yml
109109
with:
110110
fastlane_command: ui_tests_ios_swift6
111-
fastlane_command_extra_arguments: device:iPhone 16 (18.5)
111+
fastlane_command_extra_arguments: device:iPhone 16 Pro (18.4)
112112
xcode_version: 16.4
113113
build_with_make: true
114114
macos_version: macos-15

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,3 +106,5 @@ Sentry-WithoutUIKitOrAppKit.xcframework*
106106
Sentry-WithoutUIKitOrAppKit-WithARM64e.xcframework*
107107

108108
current_package_diff.patch
109+
110+
uikit-check-build

Makefile

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,13 @@ GIT-REF := $(shell git rev-parse --abbrev-ref HEAD)
9595

9696
test:
9797
@echo "--> Running all tests"
98-
./scripts/sentry-xcodebuild.sh --platform iOS --os latest --ref $(GIT-REF) --command test --configuration Test
98+
./scripts/sentry-xcodebuild.sh \
99+
--platform iOS \
100+
--os 18.4 \
101+
--device "iPhone 16 Pro" \
102+
--ref $(GIT-REF) \
103+
--command test \
104+
--configuration Test
99105
.PHONY: test
100106

101107
run-test-server:

Samples/iOS-Cocoapods-Swift6/fastlane/Fastfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ platform :ios do
99
workspace: "iOS-Cocoapods-Swift6.xcworkspace",
1010
scheme: "App",
1111
build_for_testing: true,
12-
destination: "platform=iOS Simulator,name=iPhone 16,OS=18.5"
12+
destination: "platform=iOS Simulator,OS=18.4,name=iPhone 16 Pro"
1313
)
1414
run_tests(
1515
workspace: "iOS-Cocoapods-Swift6.xcworkspace",
1616
scheme: "App",
1717
test_without_building: true,
1818
result_bundle: true,
1919
result_bundle_path: "fastlane/test_results/results.xcresult",
20-
destination: "platform=iOS Simulator,name=iPhone 16,OS=18.5"
20+
destination: "platform=iOS Simulator,OS=18.4,name=iPhone 16 Pro"
2121
)
2222
end
2323
end

Samples/iOS-Cocoapods-Swift6/iOS-Cocoapods-Swift6.xcodeproj/project.pbxproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -674,7 +674,7 @@
674674
INFOPLIST_FILE = TestKeyboardExtension/Info.plist;
675675
INFOPLIST_KEY_CFBundleDisplayName = TestKeyboardExtension;
676676
INFOPLIST_KEY_NSHumanReadableCopyright = "";
677-
IPHONEOS_DEPLOYMENT_TARGET = 18.5;
677+
IPHONEOS_DEPLOYMENT_TARGET = 18.4;
678678
LD_RUNPATH_SEARCH_PATHS = (
679679
"$(inherited)",
680680
"@executable_path/Frameworks",
@@ -700,7 +700,7 @@
700700
INFOPLIST_FILE = TestKeyboardExtension/Info.plist;
701701
INFOPLIST_KEY_CFBundleDisplayName = TestKeyboardExtension;
702702
INFOPLIST_KEY_NSHumanReadableCopyright = "";
703-
IPHONEOS_DEPLOYMENT_TARGET = 18.5;
703+
IPHONEOS_DEPLOYMENT_TARGET = 18.4;
704704
LD_RUNPATH_SEARCH_PATHS = (
705705
"$(inherited)",
706706
"@executable_path/Frameworks",

0 commit comments

Comments
 (0)