From 2ecdb4f464f41f43daec872c95c3fce9c8282c11 Mon Sep 17 00:00:00 2001 From: Viacheslav Hletenko Date: Mon, 9 Jun 2025 09:41:34 +0000 Subject: T7530: Build package binaries script should exit if repo is absent The build package binaries script should exit if the repo is absent or cannot be cloned If a build package `repo-a` depends on the `repo-b` and the `repo-b` cannot be cloned, then we shoud exit from the script to avoid partly build dependencies For example: ``` [[packages]] name = "fake-repo" commit_id = "v0.0.1" scm_url = "https://github.com/vyos/fake-repo" [[packages]] name = "ethtool" commit_id = "debian/1%6.10-1" scm_url = "https://salsa.debian.org/kernel-team/ethtool" ``` If ethtool depends on some fake-package and this package cannot be downloaded from the repo, then we shouldn't build the ethtool package at all. --- scripts/package-build/build.py | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'scripts/package-build/build.py') diff --git a/scripts/package-build/build.py b/scripts/package-build/build.py index 9c1df7b3..28e9db2a 100755 --- a/scripts/package-build/build.py +++ b/scripts/package-build/build.py @@ -17,6 +17,7 @@ import glob import shutil +import sys import toml import os @@ -91,7 +92,11 @@ def build_package(package: list, patch_dir: Path) -> None: # Check out the specific commit run(['git', 'checkout', package['commit_id']], cwd=repo_dir, check=True) + except CalledProcessError as e: + print(f"❌ Failed to clone or checkout for package '{repo_name}': {e}") + sys.exit(1) + try: # The `pre_build_hook` is an optional configuration defined in `package.toml`. # It executes after the repository is checked out and before the build process begins. # This hook allows you to perform preparatory tasks, such as creating directories, -- cgit v1.2.3