diff options
author | Viacheslav Hletenko <v.gletenko@vyos.io> | 2025-06-09 09:41:34 +0000 |
---|---|---|
committer | Viacheslav Hletenko <v.gletenko@vyos.io> | 2025-06-09 09:41:34 +0000 |
commit | 2ecdb4f464f41f43daec872c95c3fce9c8282c11 (patch) | |
tree | d8ccee14f8933e074c70435ec5b92840c2e865c7 /scripts/package-build/linux-kernel | |
parent | 8350580ac5e21d67716f8d40d65786306a7d7b0d (diff) | |
download | vyos-build-2ecdb4f464f41f43daec872c95c3fce9c8282c11.tar.gz vyos-build-2ecdb4f464f41f43daec872c95c3fce9c8282c11.zip |
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.
Diffstat (limited to 'scripts/package-build/linux-kernel')
-rwxr-xr-x | scripts/package-build/linux-kernel/build.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/scripts/package-build/linux-kernel/build.py b/scripts/package-build/linux-kernel/build.py index 6fa6af35..46a60fd7 100755 --- a/scripts/package-build/linux-kernel/build.py +++ b/scripts/package-build/linux-kernel/build.py @@ -18,6 +18,7 @@ import datetime import glob import shutil +import sys import toml import os import subprocess @@ -60,8 +61,12 @@ def clone_or_update_repo(repo_dir: Path, scm_url: str, commit_id: str) -> None: run(['git', 'checkout', commit_id], cwd=repo_dir, check=True) #run(['git', 'pull'], cwd=repo_dir, check=True) else: - run(['git', 'clone', scm_url, str(repo_dir)], check=True) - run(['git', 'checkout', commit_id], cwd=repo_dir, check=True) + try: + run(['git', 'clone', scm_url, str(repo_dir)], check=True) + run(['git', 'checkout', commit_id], cwd=repo_dir, check=True) + except CalledProcessError as e: + print(f"❌ Failed to clone or checkout: {e}") + sys.exit(1) def create_tarball(package_name, source_dir=None): |