diff options
author | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2022-08-17 01:20:29 +0200 |
---|---|---|
committer | Neels Hofmeyr <nhofmeyr@sysmocom.de> | 2022-08-17 15:32:07 +0200 |
commit | 872dbbd58be21a52ab9f2c007bb4db56d962f604 (patch) | |
tree | 71dd0c609e44e3cb7a0ec48dce5c18328069850e | |
parent | 71bafe74d350ae17d119bcedb9e0d3575f4a64a0 (diff) |
obs: add explicit --git-branch arg
Change-Id: I612c18e533542f442e0571927fee8b8be9fb8c2b
-rwxr-xr-x | scripts/obs/build_srcpkg.py | 2 | ||||
-rw-r--r-- | scripts/obs/lib/__init__.py | 3 | ||||
-rw-r--r-- | scripts/obs/lib/srcpkg.py | 10 | ||||
-rwxr-xr-x | scripts/obs/update_obs_project.py | 17 |
4 files changed, 19 insertions, 13 deletions
diff --git a/scripts/obs/build_srcpkg.py b/scripts/obs/build_srcpkg.py index ccf82d7..ea7ab34 100755 --- a/scripts/obs/build_srcpkg.py +++ b/scripts/obs/build_srcpkg.py @@ -40,7 +40,7 @@ def main(): lib.metapkg.build(args.feed, args.conflict_version) if args.package: - lib.srcpkg.build(args.package, args.feed, args.conflict_version, + lib.srcpkg.build(args.package, args.feed, args.git_branch, args.conflict_version, args.git_fetch) diff --git a/scripts/obs/lib/__init__.py b/scripts/obs/lib/__init__.py index 193c248..401e2de 100644 --- a/scripts/obs/lib/__init__.py +++ b/scripts/obs/lib/__init__.py @@ -16,6 +16,9 @@ def add_shared_arguments(parser): parser.add_argument("-f", "--feed", help="package feed (default: nightly)", metavar="FEED", default="nightly", choices=lib.config.feeds) + parser.add_argument("-b", "--git-branch", help="instead of using a branch" + " based on the feed, checkout this git branch", + metavar="BRANCH", default=None) parser.add_argument("-d", "--docker", help="run in docker to avoid installing required pkgs", action="store_true") diff --git a/scripts/obs/lib/srcpkg.py b/scripts/obs/lib/srcpkg.py index 468a240..ec29581 100644 --- a/scripts/obs/lib/srcpkg.py +++ b/scripts/obs/lib/srcpkg.py @@ -7,9 +7,11 @@ import lib.debian import lib.rpm_spec -def checkout_for_feed(project, feed): +def checkout_for_feed(project, feed, branch=None): """ checkout a commit, either latest tag or master or 20YY branch """ - if feed == "latest": + if branch: + lib.git.checkout(project, branch) + elif feed == "latest": lib.git.checkout_latest_tag(project) elif feed == "nightly": lib.git.checkout_default_branch(project) @@ -118,10 +120,10 @@ def write_tarball_version(project, version): f.write(f"{version}\n") -def build(project, feed, conflict_version, fetch): +def build(project, feed, branch, conflict_version, fetch): lib.git.clone(project, fetch) lib.git.clean(project) - checkout_for_feed(project, feed) + checkout_for_feed(project, feed, branch) version = get_version_for_feed(project, feed, conflict_version) epoch = get_epoch(project) version_epoch = f"{epoch}:{version}" if epoch else version diff --git a/scripts/obs/update_obs_project.py b/scripts/obs/update_obs_project.py index 759acfe..02db7ce 100755 --- a/scripts/obs/update_obs_project.py +++ b/scripts/obs/update_obs_project.py @@ -32,7 +32,7 @@ def parse_packages(packages_arg): return ret -def build_srcpkg(feed, package, conflict_version, fetch, is_meta_pkg): +def build_srcpkg(feed, branch, package, conflict_version, fetch, is_meta_pkg): global srcpkgs_built global srcpkgs_failed_build @@ -42,7 +42,7 @@ def build_srcpkg(feed, package, conflict_version, fetch, is_meta_pkg): if is_meta_pkg: version = lib.metapkg.build(feed, conflict_version) else: - version = lib.srcpkg.build(package, feed, conflict_version, fetch) + version = lib.srcpkg.build(package, feed, branch, conflict_version, fetch) srcpkgs_built[package] = version except Exception as ex: traceback.print_exception(type(ex), ex, ex.__traceback__) @@ -62,7 +62,7 @@ def is_up_to_date(obs_version, git_latest_version): return False -def build_srcpkg_if_needed(proj, feed, pkgs_remote, package, conflict_version, +def build_srcpkg_if_needed(proj, feed, branch, pkgs_remote, package, conflict_version, fetch, is_meta_pkg, skip_up_to_date): global srcpkgs_skipped @@ -96,7 +96,7 @@ def build_srcpkg_if_needed(proj, feed, pkgs_remote, package, conflict_version, print(f"{package}: building source package (outdated:" f" {latest_version} <=> {obs_version} in OBS)") - build_srcpkg(feed, package, conflict_version, fetch, is_meta_pkg) + build_srcpkg(feed, branch, package, conflict_version, fetch, is_meta_pkg) def upload_srcpkg(proj, feed, pkgs_remote, package, version): @@ -105,18 +105,18 @@ def upload_srcpkg(proj, feed, pkgs_remote, package, version): lib.osc.update_package(proj, package, version) -def build_srcpkgs(proj, feed, pkgs_remote, packages, conflict_version, fetch, +def build_srcpkgs(proj, feed, branch, pkgs_remote, packages, conflict_version, fetch, meta, skip_up_to_date): print() print("### Building source packages ###") print() if meta: - build_srcpkg_if_needed(proj, feed, pkgs_remote, f"osmocom-{feed}", + build_srcpkg_if_needed(proj, feed, branch, pkgs_remote, f"osmocom-{feed}", conflict_version, fetch, True, skip_up_to_date) for package in packages: - build_srcpkg_if_needed(proj, feed, pkgs_remote, package, + build_srcpkg_if_needed(proj, feed, branch, pkgs_remote, package, conflict_version, fetch, False, skip_up_to_date) @@ -191,6 +191,7 @@ def main(): args = parser.parse_args() proj = args.obs_project feed = args.feed + branch = args.git_branch packages = parse_packages(args.package) lib.set_cmds_verbose(args.verbose) @@ -205,7 +206,7 @@ def main(): pkgs_remote = lib.osc.get_remote_pkgs(proj) - build_srcpkgs(proj, feed, pkgs_remote, packages, args.conflict_version, + build_srcpkgs(proj, feed, branch, pkgs_remote, packages, args.conflict_version, args.git_fetch, args.meta, args.skip_up_to_date) upload_srcpkgs(proj, feed, pkgs_remote) exit_with_summary() |