diff --git a/Utilities/build-using-self b/Utilities/build-using-self index 0cf187e939f..11aec0e9f90 100755 --- a/Utilities/build-using-self +++ b/Utilities/build-using-self @@ -25,7 +25,6 @@ from datetime import datetime import typing as t from helpers import ( - Configuration, change_directory, call, call_output, @@ -71,10 +70,8 @@ def get_arguments() -> argparse.Namespace: parser.add_argument( "-c", "--configuration", - type=Configuration, + type=str, dest="config", - default=Configuration.DEBUG, - choices=[e for e in Configuration], help="The configuration to use.", ) parser.add_argument( @@ -123,10 +120,12 @@ def log_environment() -> None: logging.info(" --> %s=%r", key, value) -def get_swiftpm_bin_dir(config: Configuration) -> pathlib.Path: +def get_swiftpm_bin_dir( + global_args: list[str], + ) -> pathlib.Path: logging.info("Retrieving Swift PM binary directory.") swiftpm_bin_dir = pathlib.Path( - call_output(["swift", "build", "--configuration", config, "--show-bin-path"]) + call_output(["swift", "build", *global_args, "--show-bin-path"]) ) logging.info("SwiftPM BIN DIR: %s", swiftpm_bin_dir) return swiftpm_bin_dir @@ -136,10 +135,7 @@ def is_on_darwin() -> bool: return platform.system() == "Darwin" -def set_environment( - *, - swiftpm_bin_dir: pathlib.Path, -) -> None: +def set_environment() -> None: os.environ["SWIFTCI_IS_SELF_HOSTED"] = "1" # Ensure SDKROOT is configure @@ -198,6 +194,7 @@ def main() -> None: globalArgsData = [ GlobalArgs(global_argument="--triple", value=args.triple), GlobalArgs(global_argument="--build-system", value=args.build_system), + GlobalArgs(global_argument="--configuration", value=args.config), ] global_args: t.Iterator[GlobalArgsValueType] = list( itertools.chain.from_iterable( @@ -207,8 +204,8 @@ def main() -> None: logging.debug("Global Args: %r", global_args) start_time = datetime.now() with change_directory(REPO_ROOT_PATH): - swiftpm_bin_dir = get_swiftpm_bin_dir(config=args.config) - set_environment(swiftpm_bin_dir=swiftpm_bin_dir) + swiftpm_bin_dir = get_swiftpm_bin_dir(global_args=global_args) + set_environment() call( filterIsTruthy( @@ -224,34 +221,51 @@ def main() -> None: [ "swift", "package", + *global_args, + "clean", + ] + ) + ) + + call( + filterIsTruthy( + [ + "swift", + "package", + *global_args, "update", ] ) ) + call( filterIsTruthy( [ "swift", "build", *global_args, - "--configuration", - args.config, *ignore_args, *args.additional_build_args.split(" ") ] ) ) + + call( filterIsTruthy( [ - "swift", - "run", + swiftpm_bin_dir / "swift-build", + *global_args, *ignore_args, - *args.additional_run_args.split(" "), - "swift-test", + *args.additional_build_args.split(" ") + ] + ) + ) + call( + filterIsTruthy( + [ + swiftpm_bin_dir / "swift-test", *global_args, - "--configuration", - args.config, "--parallel", "--scratch-path", ".test", diff --git a/Utilities/helpers.py b/Utilities/helpers.py index 8f469e8ecca..d6a04b9fe72 100644 --- a/Utilities/helpers.py +++ b/Utilities/helpers.py @@ -35,14 +35,6 @@ def change_directory(directory: pathlib.Path) -> t.Iterator[pathlib.Path]: os.chdir(current_directory) -class Configuration(str, enum.Enum): - DEBUG = "debug" - RELEASE = "release" - - def __str__(self) -> str: - return self.value - - def symlink_force(source, destination): try: os.symlink(source, destination)