build: package prebuilt Codex entrypoints

This commit is contained in:
Michael Bolin
2026-05-19 18:04:49 -07:00
parent 79f044ed34
commit 290740948a
6 changed files with 138 additions and 43 deletions
+19 -9
View File
@@ -10,9 +10,11 @@ from .layout import build_package_dir
from .layout import prepare_package_dir
from .layout import validate_package_dir
from .ripgrep import resolve_rg_bin
from .targets import PACKAGE_VARIANTS
from .targets import TARGET_SPECS
from .targets import PackageInputs
from .targets import default_target
from .version import read_workspace_version
def parse_args() -> argparse.Namespace:
@@ -29,15 +31,11 @@ def parse_args() -> argparse.Namespace:
"for this host platform."
),
)
parser.add_argument(
"--version",
default="0.0.0-dev",
help="Codex version to record in codex-package.json.",
)
parser.add_argument(
"--variant",
choices=sorted(PACKAGE_VARIANTS),
default="codex",
help="Package variant to record in codex-package.json.",
help="Package variant to build.",
)
parser.add_argument(
"--package-dir",
@@ -74,6 +72,14 @@ def parse_args() -> argparse.Namespace:
"release packages."
),
)
parser.add_argument(
"--entrypoint-bin",
type=Path,
help=(
"Optional prebuilt entrypoint executable for the selected package "
"variant. If omitted, the entrypoint is built with Cargo."
),
)
parser.add_argument(
"--rg-bin",
type=Path,
@@ -88,6 +94,7 @@ def parse_args() -> argparse.Namespace:
def main() -> int:
args = parse_args()
spec = TARGET_SPECS[getattr(args, "target", None) or default_target()]
variant = PACKAGE_VARIANTS[args.variant]
package_dir_arg = getattr(args, "package_dir", None)
package_dir = (
package_dir_arg.resolve()
@@ -97,19 +104,22 @@ def main() -> int:
source_outputs = build_source_binaries(
spec,
variant,
cargo=args.cargo,
profile=args.cargo_profile,
entrypoint_bin=args.entrypoint_bin,
)
version = read_workspace_version()
inputs = PackageInputs(
codex_bin=source_outputs.codex_bin,
entrypoint_bin=source_outputs.entrypoint_bin,
rg_bin=resolve_rg_bin(spec, args.rg_bin),
bwrap_bin=source_outputs.bwrap_bin,
codex_command_runner_bin=source_outputs.codex_command_runner_bin,
codex_windows_sandbox_setup_bin=source_outputs.codex_windows_sandbox_setup_bin,
)
prepare_package_dir(package_dir, force=args.force)
build_package_dir(package_dir, args.version, args.variant, spec, inputs)
validate_package_dir(package_dir, spec)
build_package_dir(package_dir, version, variant, spec, inputs)
validate_package_dir(package_dir, variant, spec)
archive_output = args.archive_output
if archive_output is not None: