diff options
author | Lars Wirzenius <liw@liw.fi> | 2018-08-11 19:23:43 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2018-08-11 19:23:43 +0300 |
commit | 7c1242e82b621a51bd89622b1eed01250cbac25e (patch) | |
tree | 446fd65ae8349486097d06350b82df037b0f470e /ick_helpers.py | |
parent | e37be55be6ea634bd34eab34d8344234da951434 (diff) | |
download | ick-helpers-7c1242e82b621a51bd89622b1eed01250cbac25e.tar.gz |
Add: build for a specific Debian release
Diffstat (limited to 'ick_helpers.py')
-rw-r--r-- | ick_helpers.py | 31 |
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) |