[M] Change in osmo-ci[master]: obs: don't pass feed through functions
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@sysmocom.de> Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: laforge <laforge@osmocom.org> Gerrit-Reviewer: osmith <osmith@sysmocom.de> Gerrit-Reviewer: pespin <pespin@sysmocom.de> Gerrit-MessageType: merged
participants (1)
-
osmith