osmith has submitted this change. (
https://gerrit.osmocom.org/c/osmo-ci/+/31928 )
Change subject: obs: don't pass feed through functions
......................................................................
obs: don't pass feed through functions
Change-Id: I9124d33c45ef3fef48666b485fd169eec0eb393a
---
M scripts/obs/build_srcpkg.py
M scripts/obs/lib/debian.py
M scripts/obs/lib/metapkg.py
M scripts/obs/lib/osc.py
M scripts/obs/lib/srcpkg.py
M scripts/obs/update_obs_project.py
6 files changed, 57 insertions(+), 40 deletions(-)
Approvals:
Jenkins Builder: Verified
laforge: Looks good to me, but someone else must approve
pespin: Looks good to me, approved
diff --git a/scripts/obs/build_srcpkg.py b/scripts/obs/build_srcpkg.py
index 869b8ef..597092c 100755
--- a/scripts/obs/build_srcpkg.py
+++ b/scripts/obs/build_srcpkg.py
@@ -41,10 +41,10 @@
lib.remove_temp()
if args.meta:
- lib.metapkg.build(args.feed, args.conflict_version)
+ lib.metapkg.build(args.conflict_version)
if args.package:
- lib.srcpkg.build(args.package, args.feed, args.git_branch,
args.conflict_version,
+ lib.srcpkg.build(args.package, args.git_branch, args.conflict_version,
args.git_fetch, args.gerrit_id)
diff --git a/scripts/obs/lib/debian.py b/scripts/obs/lib/debian.py
index 3bba3ec..8a82e16 100644
--- a/scripts/obs/lib/debian.py
+++ b/scripts/obs/lib/debian.py
@@ -22,8 +22,9 @@
lib.run_cmd(cmd, cwd=repo_path)
-def changelog_add_entry(project, feed, version):
+def changelog_add_entry(project, version):
""" :param version: for the new changelog entry """
+ feed = lib.args.feed
repo_path = lib.git.get_repo_path(project)
changelog_path = f"{repo_path}/debian/changelog"
@@ -84,7 +85,7 @@
return ret
-def changelog_add_entry_if_needed(project, feed, version):
+def changelog_add_entry_if_needed(project, version):
""" Adjust the changelog if the version in the changelog is different
from
the given version. """
version_changelog = get_last_version_from_changelog(project)
@@ -93,7 +94,7 @@
print(f"{project}: adding debian/changelog entry ({version_changelog}
=>"
f" {version})")
- changelog_add_entry(project, feed, version)
+ changelog_add_entry(project, version)
def build_source_package(project):
diff --git a/scripts/obs/lib/metapkg.py b/scripts/obs/lib/metapkg.py
index dd261de..531dab6 100644
--- a/scripts/obs/lib/metapkg.py
+++ b/scripts/obs/lib/metapkg.py
@@ -7,17 +7,17 @@
import lib.rpm_spec
-def get_conflicts(feed):
+def get_conflicts():
ret = []
for f in lib.config.feeds:
- if f == feed:
+ if f == lib.args.feed:
continue
ret += [f"osmocom-{f}"]
return ret
-def prepare_source_dir(feed):
- path = f"{lib.config.path_cache}/osmocom-{feed}"
+def prepare_source_dir():
+ path = f"{lib.config.path_cache}/osmocom-{lib.args.feed}"
if os.path.exists(path):
lib.run_cmd(["rm", "-rf", path])
@@ -26,9 +26,10 @@
os.makedirs(f"{path}/contrib")
-def generate_debian_pkg(feed, version):
+def generate_debian_pkg(version):
+ feed = lib.args.feed
path = f"{lib.config.path_cache}/osmocom-{feed}"
- conflicts = get_conflicts(feed)
+ conflicts = get_conflicts()
with open(f"{path}/debian/control", "w") as f:
f.write(f"Source: osmocom-{feed}\n")
@@ -63,11 +64,12 @@
f.write("10\n")
-def generate_rpm_spec(feed, version):
+def generate_rpm_spec(version):
+ feed = lib.args.feed
print(f"osmocom-{feed}: generating rpm spec file")
path = (f"{lib.config.path_cache}/osmocom-{feed}/contrib/osmocom-{feed}"
".spec.in")
- conflicts = get_conflicts(feed)
+ conflicts = get_conflicts()
with open(path, "w") as f:
f.write(f"Name: osmocom-{feed}\n")
@@ -83,13 +85,14 @@
f.write("%files\n")
-def build(feed, conflict_version):
+def build(conflict_version):
+ feed = lib.args.feed
pkgname = f"osmocom-{feed}"
version = conflict_version if conflict_version else "1.0.0"
print(f"{pkgname}: generating meta package {version}")
- prepare_source_dir(feed)
- generate_debian_pkg(feed, version)
+ prepare_source_dir()
+ generate_debian_pkg(version)
os.makedirs(lib.get_output_path(pkgname))
lib.remove_cache_extra_files()
@@ -97,7 +100,7 @@
lib.debian.build_source_package(pkgname)
lib.debian.move_files_to_output(pkgname)
- generate_rpm_spec(feed, version)
+ generate_rpm_spec(version)
lib.rpm_spec.copy_to_output(pkgname)
lib.remove_cache_extra_files()
diff --git a/scripts/obs/lib/osc.py b/scripts/obs/lib/osc.py
index 6a1d42b..c2f6ad4 100644
--- a/scripts/obs/lib/osc.py
+++ b/scripts/obs/lib/osc.py
@@ -64,7 +64,8 @@
return ret.output.rstrip().split("\n")
-def get_package_version(package, feed):
+def get_package_version(package):
+ feed = lib.args.feed
proj = lib.args.obs_project
print(f"{package}: getting OBS version")
ret = run_osc(["list", proj, os.path.basename(package)])
diff --git a/scripts/obs/lib/srcpkg.py b/scripts/obs/lib/srcpkg.py
index e888ffa..4816363 100644
--- a/scripts/obs/lib/srcpkg.py
+++ b/scripts/obs/lib/srcpkg.py
@@ -9,8 +9,9 @@
import lib.rpm_spec
-def checkout_for_feed(project, feed, branch=None):
+def checkout_for_feed(project, branch=None):
""" checkout a commit, either latest tag or master or 20YY branch
"""
+ feed = lib.args.feed
if branch:
lib.git.checkout(project, f"origin/{branch}")
elif feed == "latest":
@@ -55,8 +56,8 @@
return ret.output
-def get_version_for_feed(project, feed, conflict_version):
- if feed == "latest":
+def get_version_for_feed(project, conflict_version):
+ if lib.args.feed == "latest":
# There's always a tag if we are here. If there was none, the build
# would have been skipped for latest.
ret = lib.git.get_latest_tag(project)
@@ -130,14 +131,15 @@
pathlib.Path(f"{output_path}/commit_{commit}.txt").touch()
-def build(project, feed, branch, conflict_version, fetch, gerrit_id=0):
+def build(project, branch, conflict_version, fetch, gerrit_id=0):
+ feed = lib.args.feed
lib.git.clone(project, fetch)
lib.git.clean(project)
if gerrit_id > 0:
lib.git.checkout_from_review(project, gerrit_id)
else:
- checkout_for_feed(project, feed, branch)
- version = get_version_for_feed(project, feed, conflict_version)
+ checkout_for_feed(project, branch)
+ version = get_version_for_feed(project, conflict_version)
epoch = get_epoch(project)
version_epoch = f"{epoch}:{version}" if epoch else version
has_rpm_spec = lib.rpm_spec.get_spec_in_path(project) is not None
@@ -151,7 +153,7 @@
if has_rpm_spec:
lib.rpm_spec.add_depend(project, metapkg, conflict_version)
- lib.debian.changelog_add_entry_if_needed(project, feed, version_epoch)
+ lib.debian.changelog_add_entry_if_needed(project, version_epoch)
os.makedirs(lib.get_output_path(project))
lib.remove_cache_extra_files()
diff --git a/scripts/obs/update_obs_project.py b/scripts/obs/update_obs_project.py
index 5718a45..a6f8643 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, branch, package, conflict_version, fetch, is_meta_pkg):
+def build_srcpkg(branch, package, conflict_version, fetch, is_meta_pkg):
global srcpkgs_built
global srcpkgs_failed_build
@@ -40,9 +40,9 @@
try:
if is_meta_pkg:
- version = lib.metapkg.build(feed, conflict_version)
+ version = lib.metapkg.build(conflict_version)
else:
- version = lib.srcpkg.build(package, feed, branch, conflict_version, fetch)
+ version = lib.srcpkg.build(package, branch, conflict_version, fetch)
srcpkgs_built[package] = version
except Exception as ex:
traceback.print_exception(type(ex), ex, ex.__traceback__)
@@ -62,9 +62,10 @@
return False
-def build_srcpkg_if_needed(feed, branch, pkgs_remote, package, conflict_version,
+def build_srcpkg_if_needed(branch, pkgs_remote, package, conflict_version,
fetch, is_meta_pkg, skip_up_to_date):
global srcpkgs_skipped
+ feed = lib.args.feed
if feed in ["master", "latest"]:
""" Check if we can skip this package by comparing the OBS version
with
@@ -85,7 +86,7 @@
if os.path.basename(package) not in pkgs_remote:
print(f"{package}: building source package (not in OBS)")
else:
- obs_version = lib.osc.get_package_version(package, feed)
+ obs_version = lib.osc.get_package_version(package)
if is_up_to_date(obs_version, latest_version):
if skip_up_to_date:
print(f"{package}: skipping ({obs_version} is
up-to-date)")
@@ -101,31 +102,32 @@
else:
print(f"{package}: building source package (feed is {feed})")
- build_srcpkg(feed, branch, package, conflict_version, fetch, is_meta_pkg)
+ build_srcpkg(branch, package, conflict_version, fetch, is_meta_pkg)
-def upload_srcpkg(feed, pkgs_remote, package, version):
+def upload_srcpkg(pkgs_remote, package, version):
if os.path.basename(package) not in pkgs_remote:
lib.osc.create_package(package)
lib.osc.update_package(package, version)
-def build_srcpkgs(feed, branch, pkgs_remote, packages, conflict_version, fetch,
+def build_srcpkgs(branch, pkgs_remote, packages, conflict_version, fetch,
meta, skip_up_to_date):
print()
print("### Building source packages ###")
print()
if meta:
- build_srcpkg_if_needed(feed, branch, pkgs_remote, f"osmocom-{feed}",
+ feed = lib.args.feed
+ build_srcpkg_if_needed(branch, pkgs_remote, f"osmocom-{feed}",
conflict_version, fetch, True, skip_up_to_date)
for package in packages:
- build_srcpkg_if_needed(feed, branch, pkgs_remote, package,
+ build_srcpkg_if_needed(branch, pkgs_remote, package,
conflict_version, fetch, False, skip_up_to_date)
-def upload_srcpkgs(feed, pkgs_remote):
+def upload_srcpkgs(pkgs_remote):
global srcpkgs_built
global srcpkgs_failed_upload
global srcpkgs_updated
@@ -142,7 +144,7 @@
for package, version in srcpkgs_built.items():
try:
- upload_srcpkg(feed, pkgs_remote, package, version)
+ upload_srcpkg(pkgs_remote, package, version)
srcpkgs_updated += [package]
except Exception as ex:
traceback.print_exception(type(ex), ex, ex.__traceback__)
@@ -194,7 +196,6 @@
help="package name, e.g. libosmocore or open5gs,"
" default is all packages")
args = parser.parse_args()
- feed = args.feed
branch = args.git_branch
packages = parse_packages(args.package)
@@ -214,9 +215,9 @@
pkgs_remote = lib.osc.get_remote_pkgs()
- build_srcpkgs(feed, branch, pkgs_remote, packages, args.conflict_version,
+ build_srcpkgs(branch, pkgs_remote, packages, args.conflict_version,
args.git_fetch, args.meta, args.skip_up_to_date)
- upload_srcpkgs(feed, pkgs_remote)
+ upload_srcpkgs(pkgs_remote)
exit_with_summary()
--
To view, visit
https://gerrit.osmocom.org/c/osmo-ci/+/31928
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ci
Gerrit-Branch: master
Gerrit-Change-Id: I9124d33c45ef3fef48666b485fd169eec0eb393a
Gerrit-Change-Number: 31928
Gerrit-PatchSet: 1
Gerrit-Owner: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: osmith <osmith(a)sysmocom.de>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: merged