From 06840501bd7b52ee38a7a0c337cadfbf4512fc5d Mon Sep 17 00:00:00 2001 From: Neal Gompa Date: Sun, 11 Aug 2024 15:11:51 -0400 Subject: [PATCH 2/2] kiwi: Add support for overriding kiwi image file name format In order to be able to support workflows where the exact structure of the image filenames matter (e.g. for Linux distribution artifacts), support optionally overriding the image file name structure. --- plugins/builder/kiwi.py | 2 ++ plugins/cli/kiwi.py | 3 +++ plugins/hub/kiwi.py | 6 +++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/plugins/builder/kiwi.py b/plugins/builder/kiwi.py index 99737f7c..1b4a9481 100644 --- a/plugins/builder/kiwi.py +++ b/plugins/builder/kiwi.py @@ -408,6 +408,8 @@ class KiwiCreateImageTask(BaseBuildTask): '--target-dir', target_dir, '--bundle-dir', bundle_dir, '--id', release] + if self.opts.get('result_bundle_name_format'): + cmd.extend(['--bundle-format', self.opts['result_bundle_name_format']]) rv = broot.mock(['--cwd', broot.tmpdir(within=True), '--chroot', '--'] + cmd) if rv: raise koji.GenericError("Kiwi failed") diff --git a/plugins/cli/kiwi.py b/plugins/cli/kiwi.py index 7e3e9771..f0172575 100644 --- a/plugins/cli/kiwi.py +++ b/plugins/cli/kiwi.py @@ -31,6 +31,7 @@ def handle_kiwi_build(goptions, session, args): parser.add_option("--type-attr", action="append", default=[], help="Override default attributes for the build type from description. " "May be used multiple times.") + parser.add_option("--result-bundle-name-format", help="Override default bundle name format") parser.add_option("--make-prep", action="store_true", default=False, help="Run 'make prep' in checkout before starting the build") parser.add_option("--can-fail", action="store", dest="optional_arches", @@ -73,6 +74,8 @@ def handle_kiwi_build(goptions, session, args): kwargs['type'] = options.type if options.type_attr: kwargs['type_attr'] = options.type_attr + if options.result_bundle_name_format: + kwargs['result_bundle_name_format'] = options.result_bundle_name_format if options.arches: kwargs['arches'] = [canonArch(arch) for arch in options.arches] if options.repo: diff --git a/plugins/hub/kiwi.py b/plugins/hub/kiwi.py index 852cbad1..15f352cc 100644 --- a/plugins/hub/kiwi.py +++ b/plugins/hub/kiwi.py @@ -17,7 +17,7 @@ koji.tasks.LEGACY_SIGNATURES['createKiwiImage'] = [ @export def kiwiBuild(target, arches, desc_url, desc_path, optional_arches=None, profile=None, scratch=False, priority=None, make_prep=False, repos=None, release=None, - type=None, type_attr=None): + type=None, type_attr=None, result_bundle_name_format=None): context.session.assertPerm('image') for i in [desc_url, desc_path, profile, release]: if i is not None: @@ -26,6 +26,8 @@ def kiwiBuild(target, arches, desc_url, desc_path, optional_arches=None, profile kojihub.convert_value(repos, cast=list, check_only=True) if type_attr: kojihub.convert_value(type_attr, cast=list, check_only=True) + if result_bundle_name_format: + kojihub.convert_value(result_bundle_name_format, cast=str, check_only=True) kojihub.get_build_target(target, strict=True) if isinstance(arches, list): arches = " ".join(arches) @@ -62,6 +64,8 @@ def kiwiBuild(target, arches, desc_url, desc_path, optional_arches=None, profile opts['type'] = type if type_attr: opts['type_attr'] = type_attr + if result_bundle_name_format: + opts['result_bundle_name_format'] = result_bundle_name_format return kojihub.make_task('kiwiBuild', [target, arches, desc_url, desc_path, opts], **taskOpts) -- 2.46.0