23
23
type : string
24
24
description : " The arguments passed to swift test in the macOS 5.10 Swift version matrix job."
25
25
default : " "
26
+ xcode_16_0_setup_command :
27
+ type : string
28
+ description : " The command(s) to be executed before all other work."
29
+ default : " "
26
30
xcode_16_1_enabled :
27
31
type : boolean
28
32
description : " Boolean to enable the Xcode version 16.1 jobs. Defaults to true."
35
39
type : string
36
40
description : " The arguments passed to swift test in the Xcode version 16.1 job."
37
41
default : " "
42
+ xcode_16_1_setup_command :
43
+ type : string
44
+ description : " The command(s) to be executed before all other work."
45
+ default : " "
38
46
xcode_16_2_enabled :
39
47
type : boolean
40
48
description : " Boolean to enable the Xcode version 16.2 jobs. Defaults to true."
47
55
type : string
48
56
description : " The arguments passed to swift test in the Xcode version 16.2 job."
49
57
default : " "
58
+ xcode_16_2_setup_command :
59
+ type : string
60
+ description : " The command(s) to be executed before all other work."
61
+ default : " xcrun simctl runtime match set iphoneos18.2 22D8075 && xcrun simctl runtime match set xros2.2 22N895"
50
62
xcode_16_3_enabled :
51
63
type : boolean
52
64
description : " Boolean to enable the Xcode version 16.3 jobs. Defaults to true."
59
71
type : string
60
72
description : " The arguments passed to swift test in the Xcode version 16.3 job."
61
73
default : " "
74
+ xcode_16_3_setup_command :
75
+ type : string
76
+ description : " The command(s) to be executed before all other work."
77
+ default : " "
62
78
63
79
build_scheme :
64
80
type : string
@@ -132,60 +148,70 @@ jobs:
132
148
xcode_15_4_enabled="${MATRIX_MACOS_15_4_ENABLED:=true}"
133
149
xcode_15_4_build_arguments_override="${MATRIX_MACOS_15_4_BUILD_ARGUMENTS_OVERRIDE:=""}"
134
150
xcode_15_4_test_arguments_override="${MATRIX_MACOS_15_4_TEST_ARGUMENTS_OVERRIDE:=""}"
151
+ xcode_15_4_setup_command="${MATRIX_MACOS_15_4_SETUP_COMMAND:=""}"
135
152
xcode_16_0_enabled="${MATRIX_MACOS_16_0_ENABLED:=true}"
136
153
xcode_16_0_build_arguments_override="${MATRIX_MACOS_16_0_BUILD_ARGUMENTS_OVERRIDE:=""}"
137
154
xcode_16_0_test_arguments_override="${MATRIX_MACOS_16_0_TEST_ARGUMENTS_OVERRIDE:=""}"
155
+ xcode_16_0_setup_command="${MATRIX_MACOS_16_0_SETUP_COMMAND:=""}"
138
156
xcode_16_1_enabled="${MATRIX_MACOS_16_1_ENABLED:=true}"
139
157
xcode_16_1_build_arguments_override="${MATRIX_MACOS_16_1_BUILD_ARGUMENTS_OVERRIDE:=""}"
140
158
xcode_16_1_test_arguments_override="${MATRIX_MACOS_16_1_TEST_ARGUMENTS_OVERRIDE:=""}"
159
+ xcode_16_1_setup_command="${MATRIX_MACOS_16_1_SETUP_COMMAND:=""}"
141
160
xcode_16_2_enabled="${MATRIX_MACOS_16_2_ENABLED:=true}"
142
161
xcode_16_2_build_arguments_override="${MATRIX_MACOS_16_2_BUILD_ARGUMENTS_OVERRIDE:=""}"
143
162
xcode_16_2_test_arguments_override="${MATRIX_MACOS_16_2_TEST_ARGUMENTS_OVERRIDE:=""}"
163
+ xcode_16_2_setup_command="${MATRIX_MACOS_16_2_SETUP_COMMAND:=""}"
144
164
xcode_16_3_enabled="${MATRIX_MACOS_16_3_ENABLED:=true}"
145
165
xcode_16_3_build_arguments_override="${MATRIX_MACOS_16_3_BUILD_ARGUMENTS_OVERRIDE:=""}"
146
166
xcode_16_3_test_arguments_override="${MATRIX_MACOS_16_3_TEST_ARGUMENTS_OVERRIDE:=""}"
167
+ xcode_16_3_setup_command="${MATRIX_MACOS_16_3_SETUP_COMMAND:=""}"
147
168
148
169
# Create matrix from inputs
149
170
matrix='{"config": []}'
150
171
151
172
if [[ "$xcode_15_4_enabled" == "true" ]]; then
152
173
matrix=$(echo "$matrix" | jq -c \
174
+ --arg setup_command "$xcode_15_4_setup_command" \
153
175
--arg build_arguments_override "$xcode_15_4_build_arguments_override" \
154
176
--arg test_arguments_override "$xcode_15_4_test_arguments_override" \
155
177
--arg runner_pool "$runner_pool" \
156
- '.config[.config| length] |= . + { "name": "Xcode 15.4", "xcode_version": "15.4", "build_arguments_override": $build_arguments_override, "test_arguments_override": $test_arguments_override, "os": "sequoia", "arch": "ARM64", "pool": $runner_pool }')
178
+ '.config[.config| length] |= . + { "name": "Xcode 15.4", "xcode_version": "15.4", "setup_command": $setup_command, " build_arguments_override": $build_arguments_override, "test_arguments_override": $test_arguments_override, "os": "sequoia", "arch": "ARM64", "pool": $runner_pool }')
157
179
fi
158
180
159
181
if [[ "$xcode_16_0_enabled" == "true" ]]; then
160
182
matrix=$(echo "$matrix" | jq -c \
183
+ --arg setup_command "$xcode_16_0_setup_command" \
161
184
--arg build_arguments_override "$xcode_16_0_build_arguments_override" \
162
185
--arg test_arguments_override "$xcode_16_0_test_arguments_override" \
163
186
--arg runner_pool "$runner_pool" \
164
- '.config[.config| length] |= . + { "name": "Xcode 16.0", "xcode_version": "16.0", "build_arguments_override": $build_arguments_override, "test_arguments_override": $test_arguments_override, "os": "sequoia", "arch": "ARM64", "pool": $runner_pool }')
187
+ '.config[.config| length] |= . + { "name": "Xcode 16.0", "xcode_version": "16.0", "setup_command": $setup_command, " build_arguments_override": $build_arguments_override, "test_arguments_override": $test_arguments_override, "os": "sequoia", "arch": "ARM64", "pool": $runner_pool }')
165
188
fi
166
189
167
190
if [[ "$xcode_16_1_enabled" == "true" ]]; then
168
191
matrix=$(echo "$matrix" | jq -c \
192
+ --arg setup_command "$xcode_16_1_setup_command" \
169
193
--arg build_arguments_override "$xcode_16_1_build_arguments_override" \
170
194
--arg test_arguments_override "$xcode_16_1_test_arguments_override" \
171
195
--arg runner_pool "$runner_pool" \
172
- '.config[.config| length] |= . + { "name": "Xcode 16.1", "xcode_version": "16.1", "build_arguments_override": $build_arguments_override, "test_arguments_override": $test_arguments_override, "os": "sequoia", "arch": "ARM64", "pool": $runner_pool }')
196
+ '.config[.config| length] |= . + { "name": "Xcode 16.1", "xcode_version": "16.1", "setup_command": $setup_command, " build_arguments_override": $build_arguments_override, "test_arguments_override": $test_arguments_override, "os": "sequoia", "arch": "ARM64", "pool": $runner_pool }')
173
197
fi
174
198
175
199
if [[ "$xcode_16_2_enabled" == "true" ]]; then
176
200
matrix=$(echo "$matrix" | jq -c \
201
+ --arg setup_command "$xcode_16_2_setup_command" \
177
202
--arg build_arguments_override "$xcode_16_2_build_arguments_override" \
178
203
--arg test_arguments_override "$xcode_16_2_test_arguments_override" \
179
204
--arg runner_pool "$runner_pool" \
180
- '.config[.config| length] |= . + { "name": "Xcode 16.2", "xcode_version": "16.2", "build_arguments_override": $build_arguments_override, "test_arguments_override": $test_arguments_override, "os": "sequoia", "arch": "ARM64", "pool": $runner_pool }')
205
+ '.config[.config| length] |= . + { "name": "Xcode 16.2", "xcode_version": "16.2", "setup_command": $setup_command, " build_arguments_override": $build_arguments_override, "test_arguments_override": $test_arguments_override, "os": "sequoia", "arch": "ARM64", "pool": $runner_pool }')
181
206
fi
182
207
183
208
if [[ "$xcode_16_3_enabled" == "true" ]]; then
184
209
matrix=$(echo "$matrix" | jq -c \
210
+ --arg setup_command "$xcode_16_3_setup_command" \
185
211
--arg build_arguments_override "$xcode_16_3_build_arguments_override" \
186
212
--arg test_arguments_override "$xcode_16_3_test_arguments_override" \
187
213
--arg runner_pool "$runner_pool" \
188
- '.config[.config| length] |= . + { "name": "Xcode 16.3", "xcode_version": "16.3", "build_arguments_override": $build_arguments_override, "test_arguments_override": $test_arguments_override, "os": "sequoia", "arch": "ARM64", "pool": $runner_pool }')
214
+ '.config[.config| length] |= . + { "name": "Xcode 16.3", "xcode_version": "16.3", "setup_command": $setup_command, " build_arguments_override": $build_arguments_override, "test_arguments_override": $test_arguments_override, "os": "sequoia", "arch": "ARM64", "pool": $runner_pool }')
189
215
fi
190
216
191
217
echo "$matrix" | jq -c
@@ -196,18 +222,23 @@ jobs:
196
222
MATRIX_MACOS_15_4_ENABLED : ${{ inputs.xcode_15_4_enabled }}
197
223
MATRIX_MACOS_15_4_BUILD_ARGUMENTS_OVERRIDE : ${{ inputs.xcode_15_4_build_arguments_override }}
198
224
MATRIX_MACOS_15_4_TEST_ARGUMENTS_OVERRIDE : ${{ inputs.xcode_15_4_test_arguments_override }}
225
+ MATRIX_MACOS_15_4_SETUP_COMMAND : ${{ inputs.xcode_15_4_setup_command }}
199
226
MATRIX_MACOS_16_0_ENABLED : ${{ inputs.xcode_16_0_enabled }}
200
227
MATRIX_MACOS_16_0_BUILD_ARGUMENTS_OVERRIDE : ${{ inputs.xcode_16_0_build_arguments_override }}
201
228
MATRIX_MACOS_16_0_TEST_ARGUMENTS_OVERRIDE : ${{ inputs.xcode_16_0_test_arguments_override }}
229
+ MATRIX_MACOS_16_0_SETUP_COMMAND : ${{ inputs.xcode_16_0_setup_command }}
202
230
MATRIX_MACOS_16_1_ENABLED : ${{ inputs.xcode_16_1_enabled }}
203
231
MATRIX_MACOS_16_1_BUILD_ARGUMENTS_OVERRIDE : ${{ inputs.xcode_16_1_build_arguments_override }}
204
232
MATRIX_MACOS_16_1_TEST_ARGUMENTS_OVERRIDE : ${{ inputs.xcode_16_1_test_arguments_override }}
233
+ MATRIX_MACOS_16_1_SETUP_COMMAND : ${{ inputs.xcode_16_1_setup_command }}
205
234
MATRIX_MACOS_16_2_ENABLED : ${{ inputs.xcode_16_2_enabled }}
206
235
MATRIX_MACOS_16_2_BUILD_ARGUMENTS_OVERRIDE : ${{ inputs.xcode_16_2_build_arguments_override }}
207
236
MATRIX_MACOS_16_2_TEST_ARGUMENTS_OVERRIDE : ${{ inputs.xcode_16_2_test_arguments_override }}
237
+ MATRIX_MACOS_16_2_SETUP_COMMAND : ${{ inputs.xcode_16_2_setup_command }}
208
238
MATRIX_MACOS_16_3_ENABLED : ${{ inputs.xcode_16_3_enabled }}
209
239
MATRIX_MACOS_16_3_BUILD_ARGUMENTS_OVERRIDE : ${{ inputs.xcode_16_3_build_arguments_override }}
210
240
MATRIX_MACOS_16_3_TEST_ARGUMENTS_OVERRIDE : ${{ inputs.xcode_16_3_test_arguments_override }}
241
+ MATRIX_MACOS_16_3_SETUP_COMMAND : ${{ inputs.xcode_16_3_setup_command }}
211
242
212
243
darwin-job :
213
244
name : ${{ matrix.config.name }}
@@ -222,6 +253,11 @@ jobs:
222
253
with :
223
254
persist-credentials : false
224
255
submodules : true
256
+ - name : Setup command
257
+ run : |
258
+ if [ -n "${{ matrix.config.setup_command }}" ]; then
259
+ bash -c "${{ matrix.config.setup_command }}"
260
+ fi
225
261
- name : Swift build
226
262
run : |
227
263
if [ -n "${{ matrix.config.build_arguments_override }}" ]; then
0 commit comments