Skip to content

Commit cd8dd84

Browse files
authored
Run tests in CI on Xcode 15 (#20)
1 parent f840dfc commit cd8dd84

File tree

2 files changed

+62
-6
lines changed

2 files changed

+62
-6
lines changed

.github/workflows/ci.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,3 +55,39 @@ jobs:
5555
run: sudo xcode-select --switch /Applications/Xcode_14.3.1.app/Contents/Developer
5656
- name: Build and Test Framework
5757
run: xcrun swift test -c release -Xswiftc -enable-testing
58+
spm-15:
59+
name: Build Xcode 15
60+
runs-on: macos-13
61+
strategy:
62+
matrix:
63+
platforms: [
64+
'iOS_17,watchOS_10',
65+
'macOS_14,tvOS_17',
66+
]
67+
fail-fast: false
68+
steps:
69+
- name: Checkout Repo
70+
uses: actions/checkout@v3
71+
- name: Bundle Install
72+
run: bundle install
73+
- name: Select Xcode Version
74+
run: sudo xcode-select --switch /Applications/Xcode_15.0.app/Contents/Developer
75+
- name: Build and Test Framework
76+
run: Scripts/build.swift ${{ matrix.platforms }}
77+
- name: Prepare Coverage Reports
78+
run: ./Scripts/prepare-coverage-reports.sh
79+
- name: Upload Coverage Reports
80+
if: success()
81+
uses: codecov/codecov-action@v3
82+
spm-15-swift:
83+
name: Swift Build Xcode 15
84+
runs-on: macos-13
85+
steps:
86+
- name: Checkout Repo
87+
uses: actions/checkout@v3
88+
- name: Bundle Install
89+
run: bundle install
90+
- name: Select Xcode Version
91+
run: sudo xcode-select --switch /Applications/Xcode_15.0.app/Contents/Developer
92+
- name: Build and Test Framework
93+
run: xcrun swift test -c release -Xswiftc -enable-testing

Scripts/build.swift

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,22 @@ enum Platform: String, CaseIterable, CustomStringConvertible {
2525
case iOS_14
2626
case iOS_15
2727
case iOS_16
28+
case iOS_17
2829
case tvOS_13
2930
case tvOS_14
3031
case tvOS_15
3132
case tvOS_16
33+
case tvOS_17
3234
case macOS_10_15
3335
case macOS_11
3436
case macOS_12
3537
case macOS_13
38+
case macOS_14
3639
case watchOS_6
3740
case watchOS_7
3841
case watchOS_8
3942
case watchOS_9
43+
case watchOS_10
4044

4145
var destination: String {
4246
switch self {
@@ -48,6 +52,8 @@ enum Platform: String, CaseIterable, CustomStringConvertible {
4852
return "platform=iOS Simulator,OS=15.5,name=iPad Pro (12.9-inch) (5th generation)"
4953
case .iOS_16:
5054
return "platform=iOS Simulator,OS=16.4,name=iPad Pro (12.9-inch) (6th generation)"
55+
case .iOS_17:
56+
return "platform=iOS Simulator,OS=17.0,name=iPad Pro (12.9-inch) (6th generation)"
5157

5258
case .tvOS_13:
5359
return "platform=tvOS Simulator,OS=13.4,name=Apple TV"
@@ -57,11 +63,14 @@ enum Platform: String, CaseIterable, CustomStringConvertible {
5763
return "platform=tvOS Simulator,OS=15.4,name=Apple TV"
5864
case .tvOS_16:
5965
return "platform=tvOS Simulator,OS=16.4,name=Apple TV"
66+
case .tvOS_17:
67+
return "platform=tvOS Simulator,OS=17.0,name=Apple TV"
6068

6169
case .macOS_10_15,
6270
.macOS_11,
6371
.macOS_12,
64-
.macOS_13:
72+
.macOS_13,
73+
.macOS_14:
6574
return "platform=OS X"
6675

6776
case .watchOS_6:
@@ -72,6 +81,8 @@ enum Platform: String, CaseIterable, CustomStringConvertible {
7281
return "OS=8.5,name=Apple Watch Series 6 - 44mm"
7382
case .watchOS_9:
7483
return "OS=9.4,name=Apple Watch Series 7 (45mm)"
84+
case .watchOS_10:
85+
return "OS=10.0,name=Apple Watch Series 7 (45mm)"
7586
}
7687
}
7788

@@ -80,13 +91,15 @@ enum Platform: String, CaseIterable, CustomStringConvertible {
8091
case .iOS_13,
8192
.iOS_14,
8293
.iOS_15,
83-
.iOS_16:
94+
.iOS_16,
95+
.iOS_17:
8496
return "iphonesimulator"
8597

8698
case .tvOS_13,
8799
.tvOS_14,
88100
.tvOS_15,
89-
.tvOS_16:
101+
.tvOS_16,
102+
.tvOS_17:
90103
return "appletvsimulator"
91104

92105
case .macOS_10_15:
@@ -97,11 +110,14 @@ enum Platform: String, CaseIterable, CustomStringConvertible {
97110
return "macosx12.3"
98111
case .macOS_13:
99112
return "macosx13.3"
113+
case .macOS_14:
114+
return "macosx14.0"
100115

101116
case .watchOS_6,
102117
.watchOS_7,
103118
.watchOS_8,
104-
.watchOS_9:
119+
.watchOS_9,
120+
.watchOS_10:
105121
return "watchsimulator"
106122
}
107123
}
@@ -112,20 +128,24 @@ enum Platform: String, CaseIterable, CustomStringConvertible {
112128
.iOS_14,
113129
.iOS_15,
114130
.iOS_16,
131+
.iOS_17,
115132
.tvOS_13,
116133
.tvOS_14,
117134
.tvOS_15,
118135
.tvOS_16,
136+
.tvOS_17,
119137
.macOS_10_15,
120138
.macOS_11,
121139
.macOS_12,
122-
.macOS_13:
140+
.macOS_13,
141+
.macOS_14:
123142
return true
124143

125144
case .watchOS_6,
126145
.watchOS_7,
127146
.watchOS_8,
128-
.watchOS_9:
147+
.watchOS_9,
148+
.watchOS_10:
129149
// watchOS does not support unit testing (yet?).
130150
return false
131151
}

0 commit comments

Comments
 (0)