summaryrefslogtreecommitdiff
path: root/ick_helpers.py
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2018-08-11 19:23:43 +0300
committerLars Wirzenius <liw@liw.fi>2018-08-11 19:23:43 +0300
commit7c1242e82b621a51bd89622b1eed01250cbac25e (patch)
tree446fd65ae8349486097d06350b82df037b0f470e /ick_helpers.py
parente37be55be6ea634bd34eab34d8344234da951434 (diff)
downloadick-helpers-7c1242e82b621a51bd89622b1eed01250cbac25e.tar.gz
Add: build for a specific Debian release
Diffstat (limited to 'ick_helpers.py')
-rw-r--r--ick_helpers.py31
1 files changed, 25 insertions, 6 deletions
diff --git a/ick_helpers.py b/ick_helpers.py
index dd62ccb..e35078d 100644
--- a/ick_helpers.py
+++ b/ick_helpers.py
@@ -138,8 +138,8 @@ class DebianReleaseBuilder:
self.ex = ex
self.results = resultsdir
- def build(self, tag):
- debug('Building release from tag', tag)
+ def build(self, tag, distribution):
+ debug('Building release from tag', tag, 'for', distribution)
cwd = os.getcwd()
self.checkout(tag)
@@ -150,11 +150,17 @@ class DebianReleaseBuilder:
source = self.get_source_package()
version = self.get_version()
+ curdist = self.get_distribution()
debug('Source package:', source)
debug('Version:', version)
+ debug('Distribution:', curdist)
orig_tarball = self.create_debian_orig_tarball(
upstream_tarball, source, version)
+
+ if curdist != distribution:
+ self.set_distribution(version, distribution)
+
self.create_dsc()
self.build_deb()
@@ -192,6 +198,19 @@ class DebianReleaseBuilder:
output = self.ex.get_stdout('dpkg-parsechangelog', '-S', 'Version')
return Version(output.strip())
+ def get_distribution(self):
+ output = self.ex.get_stdout('dpkg-parsechangelog', '-S', 'Distribution')
+ return output.strip()
+
+ def set_distribution(self, version, distribution):
+ newver = '{}.{}'.format(version.full, distribution)
+ debug('newver:', newver)
+ msg = 'Build release for {} in CI.'.format(distribution)
+ self.ex.run(
+ 'dch', '-v', newver, '-D', distribution, '--force-distribution',
+ msg)
+ self.ex.run('dch', '-r', '')
+
def create_dsc(self):
self.ex.run('dpkg-buildpackage', '-S', '--no-sign')
@@ -234,7 +253,7 @@ def find_upstream_dirs(sources):
yield dirname
-def build_debian_releases(sources, resultsdir):
+def build_debian_releases(sources, distribution, resultsdir):
known_tags = get_known_tags()
debug('KNOWN:', known_tags)
dirnames = find_upstream_dirs(sources)
@@ -244,6 +263,6 @@ def build_debian_releases(sources, resultsdir):
tags = ex.find_release_tags(project)
builder = DebianReleaseBuilder(ex, resultsdir)
for tag in tags:
- if tag not in known_tags:
- builder.build(tag)
- remember_tag(tag)
+ if known_tags and tag not in known_tags:
+ builder.build(tag, distribution)
+ remember_tag(tag)