Merge #381 Automatically generate missing image version

This commit is contained in:
Dennis Gilmore 2016-09-06 15:19:55 +00:00
commit 6aeab9ee9d
11 changed files with 141 additions and 16 deletions

View file

@ -355,3 +355,17 @@ class Compose(kobo.log.LoggingBase):
return '%s%s.%s' % (self.compose_date, self.ci_base.compose.type_suffix,
self.compose_respin)
@property
def image_version(self):
"""Generate a value to pass to Koji as image version.
The value is based on release version. If compose has a label, the
milestone from it is appended to the version (unless it is RC).
"""
version = self.ci_base.release.version
if self.compose_label and not self.compose_label.startswith('RC-'):
milestone, release = self.compose_label.split('-')
return '%s_%s' % (version, milestone)
return version

View file

@ -102,6 +102,13 @@ class ImageConfigMixin(object):
'%s_%s' % (self.name, opt), self.compose.conf.get(
'global_%s' % opt)))
def get_version(self, cfg):
"""
Get version from configuration hierarchy or fall back to release
version.
"""
return self.get_config(cfg, 'version') or self.compose.image_version
def get_release(self, cfg):
"""
If release is set explicitly to None, replace it with date and respin.

View file

@ -106,7 +106,7 @@ class ImageBuildPhase(base.ImageConfigMixin, base.ConfigGuardedPhase):
if release:
image_conf['image-build']['release'] = release
image_conf['image-build']['version'] = self.get_config(image_conf['image-build'], 'version')
image_conf['image-build']['version'] = self.get_version(image_conf['image-build'])
image_conf['image-build']['target'] = self.get_config(image_conf['image-build'], 'target')
# transform format into right 'format' for image-build

View file

@ -92,7 +92,7 @@ class LiveImagesPhase(base.ImageConfigMixin, base.ConfigGuardedPhase):
cmd = {
"name": data.get('name'),
"version": self.get_config(data, 'version'),
"version": self.get_version(data),
"release": self.get_release(data),
"dest_dir": dest_dir,
"build_arch": arch,

View file

@ -87,7 +87,7 @@ class LiveMediaPhase(ImageConfigMixin, ConfigGuardedPhase):
'title': image_conf.get('title'),
'repo': self._get_repos(image_conf, variant),
'install_tree': self._get_install_tree(image_conf, variant),
'version': self.get_config(image_conf, 'version'),
'version': self.get_version(image_conf),
'failable_arches': image_conf.get('failable', []),
}
self.pool.add(LiveMediaThread(self.pool))