build-all: --add-commit-sha cli arg

This commit is contained in:
Andrej730
2026-09-16 10:12:15 +05:00
parent 2bfaa4a196
commit abeea643af
3 changed files with 32 additions and 8 deletions
+22 -2
View File
@@ -137,7 +137,15 @@ from pathlib import Path
from typing import Literal, NamedTuple, TypeAlias
from urllib.request import urlretrieve
from common import BUILD_CFG_DEFAULT, BUILD_CFGS, BuildCfg, ColorFormatter, HelpStrings, resolve_cli_or_env
from common import (
ADD_COMMIT_SHA_DEFAULT,
BUILD_CFG_DEFAULT,
BUILD_CFGS,
BuildCfg,
ColorFormatter,
HelpStrings,
resolve_cli_or_env,
)
from typing_extensions import assert_never
# `common` configures the root logger on import, so reuse it here.
@@ -157,7 +165,6 @@ def is_on_off(value: str | None, *, default: bool) -> bool:
PROJECT_NAME = "IfcOpenShell"
USE_CURRENT_PYTHON_VERSION = is_on_off(os.getenv("USE_CURRENT_PYTHON_VERSION"), default=False)
ADD_COMMIT_SHA = is_on_off(os.getenv("ADD_COMMIT_SHA"), default=False)
IFCOS_BUILD_PYTHON_WRAPPER = is_on_off(os.getenv("IFCOS_BUILD_PYTHON_WRAPPER"), default=True)
USE_OCCT = is_on_off(os.getenv("USE_OCCT"), default=True)
PYTHON_USER_SITE = is_on_off(os.getenv("PYTHON_USER_SITE"), default=False)
@@ -219,6 +226,7 @@ class Args(NamedTuple):
num_build_procs: int
schemas: str | None
build_cfg: BuildCfg
add_commit_sha: bool
class DynamicArgs(NamedTuple):
@@ -342,6 +350,13 @@ def parse_args() -> tuple[Args, DynamicArgs]:
default=argparse.SUPPRESS,
help=HelpStrings.BUILD_CFG + " Also can be specified by using BUILD_CFG env variable.",
)
arg_parser.add_argument(
"--add-commit-sha",
dest="add_commit_sha",
action=argparse.BooleanOptionalAction,
default=argparse.SUPPRESS,
help=HelpStrings.ADD_COMMIT_SHA,
)
namespace, unknown_flags = arg_parser.parse_known_args()
num_build_procs = resolve_cli_or_env(
getattr(namespace, "num_build_procs", None),
@@ -353,6 +368,9 @@ def parse_args() -> tuple[Args, DynamicArgs]:
build_cfg = resolve_cli_or_env(
getattr(namespace, "build_cfg", None), "BUILD_CFG", BUILD_CFG_DEFAULT, arg_type="str"
)
add_commit_sha = resolve_cli_or_env(
getattr(namespace, "add_commit_sha", None), "ADD_COMMIT_SHA", ADD_COMMIT_SHA_DEFAULT, arg_type="bool"
)
args = Args(
explicit_targets=namespace.explicit_targets,
build_examples=namespace.build_examples,
@@ -367,6 +385,7 @@ def parse_args() -> tuple[Args, DynamicArgs]:
num_build_procs=num_build_procs,
schemas=schemas,
build_cfg=build_cfg,
add_commit_sha=add_commit_sha,
)
dynamic_args = DynamicArgs.from_unknown_flags(unknown_flags, arg_parser)
@@ -482,6 +501,7 @@ if not os.path.exists(DEPS_DIR):
INSTALL_DIR = Path(DEPS_DIR) / "install"
BUILD_CFG = ARGS.build_cfg
ADD_COMMIT_SHA = ARGS.add_commit_sha
# Print build configuration information
+8
View File
@@ -135,6 +135,8 @@ BuildType = Literal["Build", "Rebuild", "Clean"]
BUILD_TYPES = get_args(BuildType)
BUILD_TYPE_DEFAULT: BuildType = "Build"
ADD_COMMIT_SHA_DEFAULT = False
class HelpStrings:
NUM_BUILD_PROCS = (
@@ -150,6 +152,12 @@ class HelpStrings:
BUILD_CFG = f"Build configuration type. (default: {BUILD_CFG_DEFAULT})"
BUILD_CFG_FLAG = "Alternative way to specify the build configuration type, instead of the positional argument."
ADD_COMMIT_SHA = (
"Add the commit SHA to the built version string. "
"Also can be specified by using ADD_COMMIT_SHA env variable. "
f"(default: {ADD_COMMIT_SHA_DEFAULT})"
)
@staticmethod
def generator(omitted_behavior: str) -> str:
return (
+2 -6
View File
@@ -30,6 +30,7 @@ from pathlib import Path
from typing import Literal, NamedTuple, NoReturn
from common import (
ADD_COMMIT_SHA_DEFAULT,
OFF_ON,
PROJECT_NAME,
REPO_ROOT,
@@ -178,17 +179,12 @@ def parse_args() -> Args:
default=None,
help=HelpStrings.GENERATOR_FLAG,
)
ADD_COMMIT_SHA_DEFAULT = False
parser.add_argument(
"--add-commit-sha",
dest="add_commit_sha",
action=argparse.BooleanOptionalAction,
default=argparse.SUPPRESS,
help=(
"Add the commit SHA to the built version string. "
"Also can be specified by using ADD_COMMIT_SHA env variable. "
f"(default: {ADD_COMMIT_SHA_DEFAULT})"
),
help=HelpStrings.ADD_COMMIT_SHA,
)
USE_NINJA_DEFAULT = False
parser.add_argument(