neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ci/+/29116 ) Change subject: obs: add explicit --git-branch arg ...................................................................... obs: add explicit --git-branch arg Change-Id: I612c18e533542f442e0571927fee8b8be9fb8c2b --- M scripts/obs/build_srcpkg.py M scripts/obs/lib/__init__.py M scripts/obs/lib/srcpkg.py M scripts/obs/update_obs_project.py 4 files changed, 22 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ci refs/changes/16/29116/1 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 @@ 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..8473ab9 100644 --- a/scripts/obs/lib/__init__.py +++ b/scripts/obs/lib/__init__.py @@ -16,6 +16,9 @@ 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" + " named like 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..6148883 100644 --- a/scripts/obs/lib/srcpkg.py +++ b/scripts/obs/lib/srcpkg.py @@ -7,9 +7,11 @@ 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,12 @@ f.write(f"{version}\n") -def build(project, feed, conflict_version, fetch): +def build(project, feed, branch, conflict_version, fetch): + if not branch: + branch = feed 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 @@ -132,6 +136,7 @@ if project in lib.config.projects_osmocom: metapkg = f"osmocom-{feed}" + lib.debian.control_add_depend(project, metapkg, conflict_version) if has_rpm_spec: lib.rpm_spec.add_depend(project, metapkg, conflict_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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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() -- To view, visit https://gerrit.osmocom.org/c/osmo-ci/+/29116 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ci Gerrit-Branch: master Gerrit-Change-Id: I612c18e533542f442e0571927fee8b8be9fb8c2b Gerrit-Change-Number: 29116 Gerrit-PatchSet: 1 Gerrit-Owner: neels <nhofmeyr@sysmocom.de> Gerrit-MessageType: newchange