Skip to content

Commit 4a44c9f

Browse files
committed
Update build-using-self to pass global arguments to all SwiftPM commands
1 parent 046dd7e commit 4a44c9f

File tree

1 file changed

+29
-18
lines changed

1 file changed

+29
-18
lines changed

Utilities/build-using-self

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ from datetime import datetime
2525
import typing as t
2626

2727
from 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

Comments
 (0)