@@ -25,7 +25,6 @@ from datetime import datetime
2525import typing as t
2626
2727from helpers import (
28- Configuration ,
2928 change_directory ,
3029 call ,
3130 call_output ,
@@ -71,10 +70,8 @@ def get_arguments() -> argparse.Namespace:
7170 parser .add_argument (
7271 "-c" ,
7372 "--configuration" ,
74- type = Configuration ,
73+ type = str ,
7574 dest = "config" ,
76- default = Configuration .DEBUG ,
77- choices = [e for e in Configuration ],
7875 help = "The configuration to use." ,
7976 )
8077 parser .add_argument (
@@ -123,10 +120,12 @@ def log_environment() -> None:
123120 logging .info (" --> %s=%r" , key , value )
124121
125122
126- def get_swiftpm_bin_dir (config : Configuration ) -> pathlib .Path :
123+ def get_swiftpm_bin_dir (
124+ global_args : t .List [str ],
125+ ) -> pathlib .Path :
127126 logging .info ("Retrieving Swift PM binary directory." )
128127 swiftpm_bin_dir = pathlib .Path (
129- call_output (["swift" , "build" , "--configuration" , config , "--show-bin-path" ])
128+ call_output (["swift" , "build" , * global_args , "--show-bin-path" ])
130129 )
131130 logging .info ("SwiftPM BIN DIR: %s" , swiftpm_bin_dir )
132131 return swiftpm_bin_dir
@@ -136,10 +135,7 @@ def is_on_darwin() -> bool:
136135 return platform .system () == "Darwin"
137136
138137
139- def set_environment (
140- * ,
141- swiftpm_bin_dir : pathlib .Path ,
142- ) -> None :
138+ def set_environment () -> None :
143139 os .environ ["SWIFTCI_IS_SELF_HOSTED" ] = "1"
144140
145141 # Ensure SDKROOT is configure
@@ -198,6 +194,7 @@ def main() -> None:
198194 globalArgsData = [
199195 GlobalArgs (global_argument = "--triple" , value = args .triple ),
200196 GlobalArgs (global_argument = "--build-system" , value = args .build_system ),
197+ GlobalArgs (global_argument = "--configuration" , value = args .config ),
201198 ]
202199 global_args : t .Iterator [GlobalArgsValueType ] = list (
203200 itertools .chain .from_iterable (
@@ -207,8 +204,8 @@ def main() -> None:
207204 logging .debug ("Global Args: %r" , global_args )
208205 start_time = datetime .now ()
209206 with change_directory (REPO_ROOT_PATH ):
210- swiftpm_bin_dir = get_swiftpm_bin_dir (config = args . config )
211- set_environment (swiftpm_bin_dir = swiftpm_bin_dir )
207+ swiftpm_bin_dir = get_swiftpm_bin_dir (global_args = global_args )
208+ set_environment ()
212209
213210 call (
214211 filterIsTruthy (
@@ -224,38 +221,52 @@ def main() -> None:
224221 [
225222 "swift" ,
226223 "package" ,
224+ * global_args ,
227225 "update" ,
228226 ]
229227 )
230228 )
229+
231230 call (
232231 filterIsTruthy (
233232 [
234233 "swift" ,
235234 "build" ,
236235 * global_args ,
237- "--configuration" ,
238- args .config ,
239236 * ignore_args ,
240237 * args .additional_build_args .split (" " )
241238 ]
242239 )
243240 )
241+
242+ call (
243+ filterIsTruthy (
244+ [
245+ swiftpm_bin_dir / "swift-build" ,
246+ * global_args ,
247+ * ignore_args ,
248+ "--force-resolved-versions" ,
249+ "--scratch-path" ,
250+ ".build-swb" ,
251+ * args .additional_build_args .split (" " )
252+ ]
253+ )
254+ )
255+
244256 call (
245257 filterIsTruthy (
246258 [
247259 "swift" ,
248260 "run" ,
261+ * global_args ,
249262 * ignore_args ,
250- * args .additional_run_args .split (" " ),
251263 "swift-test" ,
252264 * global_args ,
253- "--configuration" ,
254- args . config ,
265+ * ignore_args ,
266+ "--force-resolved-versions" ,
255267 "--parallel" ,
256268 "--scratch-path" ,
257269 ".test" ,
258- * ignore_args ,
259270 * args .additional_test_args .split (" " )
260271 ]
261272 )
0 commit comments