kiwi: propagate --type option

Related: https://pagure.io/koji/issue/3556
This commit is contained in:
Tomas Kopecek 2022-10-18 14:49:59 +02:00
parent 125361326a
commit 6083bace39
3 changed files with 46 additions and 30 deletions

View file

@ -325,11 +325,11 @@ class KiwiCreateImageTask(BaseBuildTask):
'user_id': self.taskinfo['owner'],
'channel': self.session.getChannel(self.taskinfo['channel_id'],
strict=True)['name'],
'scratch': self.opts.get('scratch')
'scratch': self.opts.get('scratch', False)
})
logfile = os.path.join(self.workdir, 'checkout-%s.log' % arch)
self.run_callbacks('preSCMCheckout', scminfo=scm.get_info(),
build_tag=build_tag, scratch=self.opts.get('scratch'))
build_tag=build_tag, scratch=self.opts.get('scratch', False))
scmdir = broot.tmpdir()
koji.ensuredir(scmdir)
scmsrcdir = scm.checkout(scmdir, self.session,
@ -337,7 +337,7 @@ class KiwiCreateImageTask(BaseBuildTask):
self.run_callbacks("postSCMCheckout",
scminfo=scm.get_info(),
build_tag=build_tag,
scratch=self.opts.get('scratch'),
scratch=self.opts.get('scratch', False),
srcdir=scmsrcdir)
# user repos
@ -365,6 +365,8 @@ class KiwiCreateImageTask(BaseBuildTask):
cmd = ['kiwi-ng']
if self.opts.get('profile'):
cmd.extend(['--profile', self.opts['profile']])
if self.opts.get('type'):
cmd.extend(['--type', self.opts['type']])
target_dir = '/builddir/result/image'
cmd.extend([
'--kiwi-file', os.path.basename(desc), # global option for image/system commands

View file

@ -27,6 +27,7 @@ def handle_kiwi_build(goptions, session, args):
help="Do not display progress of the upload")
parser.add_option("--kiwi-profile", action="store", default=None,
help="Select profile from description file")
parser.add_option("--type", help="Override default build type from description")
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",
@ -46,28 +47,33 @@ def handle_kiwi_build(goptions, session, args):
target, scm, path = args
activate_session(session, goptions)
kwargs = {
'scratch': options.scratch,
'optional_arches': [canonArch(arch)
for arch in options.optional_arches.split(',')
if arch],
'profile': options.kiwi_profile,
'release': options.release,
'make_prep': options.make_prep,
'arches': [],
'target': target,
'desc_url': scm,
'desc_path': path,
}
arches = []
if options.scratch:
kwargs['scratch'] = True
if options.optional_arches:
kwargs['optional_arches'] = [
canonArch(arch)
for arch in options.optional_arches.split(',')
if arch]
if options.kiwi_profile:
kwargs['profile'] = options.kiwi_profile,
if options.release:
kwargs['release'] = options.release
if options.make_prep:
kwargs['make_prep'] = True
if options.type:
kwargs['type'] = options.type
if options.arches:
arches = [canonArch(arch) for arch in options.arches]
kwargs['arches'] = [canonArch(arch) for arch in options.arches]
if options.repo:
kwargs['repos'] = options.repo
task_id = session.kiwiBuild(
target=target,
arches=arches,
desc_url=scm,
desc_path=path,
repos=options.repo,
**kwargs)
task_id = session.kiwiBuild(**kwargs)
if not goptions.quiet:
print("Created task: %d" % task_id)

View file

@ -16,7 +16,8 @@ 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):
scratch=False, priority=None, make_prep=False, repos=None, release=None,
type=None):
context.session.assertPerm('image')
for i in [desc_url, desc_path, profile, release]:
if i is not None:
@ -42,14 +43,21 @@ def kiwiBuild(target, arches, desc_url, desc_path, optional_arches=None, profile
'only admins may create high-priority tasks')
taskOpts['priority'] = koji.PRIO_DEFAULT + priority
opts = {
'optional_arches': optional_arches,
'profile': profile,
'scratch': bool(scratch),
'release': release,
'repos': repos or [],
'make_prep': bool(make_prep),
}
opts = {}
if scratch:
opts['scratch'] = True
if profile:
opts['profile'] = profile
if release:
opts['release'] = release
if optional_arches:
opts['optional_arches'] = optional_arches,
if repos:
opts['repos'] = repos
if make_prep:
opts['make_prep'] = True
if type:
opts['type'] = type
return kojihub.make_task('kiwiBuild',
[target, arches, desc_url, desc_path, opts],
**taskOpts)