feat(release): build verified full-registry catalog candidates
This commit is contained in:
@@ -21,6 +21,22 @@ def main() -> int:
|
||||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
subparsers = parser.add_subparsers(dest="command", required=True)
|
||||
|
||||
full = subparsers.add_parser("full-registry", help="Build a strict full-profile candidate from verified registry artifacts.")
|
||||
full.add_argument("--workspace-root", type=Path, default=DEFAULT_WORKSPACE_ROOT)
|
||||
full.add_argument("--package-set", type=Path, required=True)
|
||||
full.add_argument("--package-lock", type=Path, required=True)
|
||||
full.add_argument("--wheelhouse", type=Path, required=True)
|
||||
full.add_argument("--webui-packages", type=Path, required=True)
|
||||
full.add_argument("--output-dir", type=Path, required=True)
|
||||
full.add_argument("--selected-repository", action="append", required=True)
|
||||
full.add_argument("--catalog-signing-key", action="append", required=True)
|
||||
full.add_argument("--channel", default="stable")
|
||||
full.add_argument("--source-remote", default="origin")
|
||||
full.add_argument("--public-base-url", default="https://govoplan.add-ideas.de")
|
||||
full.add_argument("--expires-days", type=int, default=90)
|
||||
full.add_argument("--sequence", type=int)
|
||||
full.add_argument("--json", action="store_true")
|
||||
|
||||
selective = subparsers.add_parser(
|
||||
"selective", help="Build a signed selective channel catalog candidate."
|
||||
)
|
||||
@@ -143,6 +159,21 @@ def main() -> int:
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
if args.command == "full-registry":
|
||||
require_release_runtime_trust()
|
||||
from govoplan_release.full_catalog import build_full_registry_candidate
|
||||
|
||||
result = build_full_registry_candidate(
|
||||
package_set_path=args.package_set, package_lock_path=args.package_lock,
|
||||
wheelhouse=args.wheelhouse, webui_packages=args.webui_packages,
|
||||
output_dir=args.output_dir, selected_repositories=tuple(args.selected_repository),
|
||||
signing_keys=tuple(args.catalog_signing_key), workspace_root=args.workspace_root,
|
||||
channel=args.channel, source_remote=args.source_remote,
|
||||
public_base_url=args.public_base_url, expires_days=args.expires_days,
|
||||
sequence=args.sequence,
|
||||
)
|
||||
print(json.dumps(result, indent=2, sort_keys=True))
|
||||
return 0
|
||||
if args.command == "selective":
|
||||
require_release_runtime_trust()
|
||||
result = build_selective_catalog_candidate(
|
||||
|
||||
Reference in New Issue
Block a user