up
This commit is contained in:
@@ -184,6 +184,45 @@ def copy_plugins_and_assets(staging_dir: Path) -> None:
|
||||
copy_if_exists(REPO_ROOT / "docs" / "24_OFFLINE_KIT.md", docs_dir / "24_OFFLINE_KIT.md")
|
||||
copy_if_exists(REPO_ROOT / "docs" / "ops" / "telemetry-collector.md", docs_dir / "telemetry-collector.md")
|
||||
copy_if_exists(REPO_ROOT / "docs" / "ops" / "telemetry-storage.md", docs_dir / "telemetry-storage.md")
|
||||
copy_if_exists(REPO_ROOT / "docs" / "airgap" / "mirror-bundles.md", docs_dir / "mirror-bundles.md")
|
||||
|
||||
|
||||
def copy_cli_and_taskrunner_assets(release_dir: Path, staging_dir: Path) -> None:
|
||||
"""Bundle CLI binaries, task pack docs, and Task Runner samples when available."""
|
||||
cli_src = release_dir / "cli"
|
||||
if cli_src.exists():
|
||||
copy_if_exists(cli_src, staging_dir / "cli")
|
||||
|
||||
taskrunner_bootstrap = staging_dir / "bootstrap" / "task-runner"
|
||||
taskrunner_bootstrap.mkdir(parents=True, exist_ok=True)
|
||||
copy_if_exists(REPO_ROOT / "etc" / "task-runner.yaml.sample", taskrunner_bootstrap / "task-runner.yaml.sample")
|
||||
|
||||
docs_dir = staging_dir / "docs"
|
||||
copy_if_exists(REPO_ROOT / "docs" / "task-packs", docs_dir / "task-packs")
|
||||
copy_if_exists(REPO_ROOT / "docs" / "modules" / "taskrunner", docs_dir / "modules" / "taskrunner")
|
||||
|
||||
|
||||
def copy_orchestrator_assets(release_dir: Path, staging_dir: Path) -> None:
|
||||
"""Copy orchestrator service, worker SDK, postgres snapshot, and dashboards when present."""
|
||||
mapping = {
|
||||
release_dir / "orchestrator" / "service": staging_dir / "orchestrator" / "service",
|
||||
release_dir / "orchestrator" / "worker-sdk": staging_dir / "orchestrator" / "worker-sdk",
|
||||
release_dir / "orchestrator" / "postgres": staging_dir / "orchestrator" / "postgres",
|
||||
release_dir / "orchestrator" / "dashboards": staging_dir / "orchestrator" / "dashboards",
|
||||
}
|
||||
for src, dest in mapping.items():
|
||||
copy_if_exists(src, dest)
|
||||
|
||||
|
||||
def copy_export_and_notifier_assets(release_dir: Path, staging_dir: Path) -> None:
|
||||
"""Copy Export Center and Notifier offline bundles and tooling when present."""
|
||||
copy_if_exists(release_dir / "export-center", staging_dir / "export-center")
|
||||
copy_if_exists(release_dir / "notifier", staging_dir / "notifier")
|
||||
|
||||
|
||||
def copy_surface_secrets(release_dir: Path, staging_dir: Path) -> None:
|
||||
"""Include Surface.Secrets bundles and manifests if present."""
|
||||
copy_if_exists(release_dir / "surface-secrets", staging_dir / "surface-secrets")
|
||||
|
||||
|
||||
def copy_bootstrap_configs(staging_dir: Path) -> None:
|
||||
@@ -267,7 +306,21 @@ def scan_files(staging_dir: Path, exclude: Optional[set[str]] = None) -> list[Or
|
||||
)
|
||||
)
|
||||
)
|
||||
return entries
|
||||
return entries
|
||||
|
||||
|
||||
def copy_container_bundles(release_dir: Path, staging_dir: Path) -> None:
|
||||
"""Copy container air-gap bundles if present in the release directory."""
|
||||
candidates = [release_dir / "containers", release_dir / "images"]
|
||||
target_dir = staging_dir / "containers"
|
||||
for root in candidates:
|
||||
if not root.exists():
|
||||
continue
|
||||
for bundle in sorted(root.glob("**/*")):
|
||||
if bundle.is_file() and bundle.suffix in {".gz", ".tar", ".tgz"}:
|
||||
target_path = target_dir / bundle.relative_to(root)
|
||||
target_path.parent.mkdir(parents=True, exist_ok=True)
|
||||
shutil.copy2(bundle, target_path)
|
||||
|
||||
|
||||
def write_offline_manifest(
|
||||
@@ -372,11 +425,16 @@ def build_offline_kit(args: argparse.Namespace) -> MutableMapping[str, Any]:
|
||||
if isinstance(checksums, Mapping):
|
||||
release_manifest_sha = checksums.get("sha256")
|
||||
|
||||
copy_release_manifests(release_dir, staging_dir)
|
||||
copy_release_manifests(release_dir, staging_dir)
|
||||
copy_component_artifacts(manifest_data, release_dir, staging_dir)
|
||||
copy_collections(manifest_data, release_dir, staging_dir)
|
||||
copy_plugins_and_assets(staging_dir)
|
||||
copy_bootstrap_configs(staging_dir)
|
||||
copy_cli_and_taskrunner_assets(release_dir, staging_dir)
|
||||
copy_container_bundles(release_dir, staging_dir)
|
||||
copy_orchestrator_assets(release_dir, staging_dir)
|
||||
copy_export_and_notifier_assets(release_dir, staging_dir)
|
||||
copy_surface_secrets(release_dir, staging_dir)
|
||||
copy_third_party_licenses(staging_dir)
|
||||
package_telemetry_bundle(staging_dir)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user