neels has submitted this change. ( 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, 19 insertions(+), 13 deletions(-)

Approvals:
  Jenkins Builder: Verified
  osmith: Looks good to me, approved



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..401e2de 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"
+                              " 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.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 @@
         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 @@
     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: 3
Gerrit-Owner: neels <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: neels <[email protected]>
Gerrit-Reviewer: osmith <[email protected]>
Gerrit-MessageType: merged

Reply via email to