diff options
author | Lars Wirzenius <liw@liw.fi> | 2016-03-06 22:36:15 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2016-03-06 22:36:15 +0200 |
commit | 0c31371582ec428ea3930ca18c58956f8292a976 (patch) | |
tree | 2b44ffc8073b80e681c3bfcf8d18e68ae85866f6 | |
parent | e0efc34fff3b4f06efc8afdf70a66771b272130c (diff) | |
download | ick-0c31371582ec428ea3930ca18c58956f8292a976.tar.gz |
Move .dsc creation steps into a module
-rw-r--r-- | icklib/__init__.py | 4 | ||||
-rw-r--r-- | icklib/project.py | 102 | ||||
-rw-r--r-- | icklib/step_debian_source.py | 117 | ||||
-rw-r--r-- | without-tests | 1 |
4 files changed, 124 insertions, 100 deletions
diff --git a/icklib/__init__.py b/icklib/__init__.py index 47567e0..2156d33 100644 --- a/icklib/__init__.py +++ b/icklib/__init__.py @@ -26,6 +26,10 @@ from .os_release import parse_os_release, OsRelease, NoOsReleaseInformation from .step_build_info import CreateBuildInfo, FinishBuildInfo from .step_create_tarball import CreateCITarball, CreateReleaseTarballs from .step_debian_info import CollectDebianInfoAboutTargets +from .step_debian_source import ( + CreateDebianSourcePackagesForCI, + CreateDebianSourcePackagesForRelease, +) from .step_find_current_commit import FindCurrentGitCommits from .step_find_new_commit import ( FindNewCommitToBuildForShell, diff --git a/icklib/project.py b/icklib/project.py index dacd980..446c23a 100644 --- a/icklib/project.py +++ b/icklib/project.py @@ -223,104 +223,6 @@ class Project(object): remote_git_dir) -class CreateDebianSourcePackagesForCI(icklib.BuildStep): - - def build(self): - if not self.run_state.build_using_debian_ci: - return - - dsc_targets = [] - codenames = set() - for target in self.targets: - if target.debian_codename not in codenames: - dsc_targets.append(target) - codenames.add(target.debian_codename) - - for target in dsc_targets: - self.run_state.progress['step'] = ( - 'Create dsc for {}'.format(target.debian_codename)) - self.run_state.logger.important( - 'Creating dsc for {codename}', - codename=target.debian_codename) - with self.run_state.logger: - remote_tmp = target.mkdtemp() - remote_git_dir = target.sync_to_target( - self.run_state.clones[0].dirname, remote_tmp, 'git') - remote_artifacts_dir = target.sync_to_target( - self.run_state.build_info.create_artifacts_directory(), - remote_tmp, 'artifacts') - - cleanly_path = self.project.copy_cleanly_to_target( - target, remote_tmp) - self.project.run_cleanly( - target, remote_git_dir, cleanly_path, - ['--results', remote_artifacts_dir, - '--ci', - '--buildno', str(self.run_state.build_info.build_number), - '--debian-release', target.debian_release, - '--debian-codename', target.debian_codename, - 'dsc']) - - target.sync_from_target( - remote_artifacts_dir, - self.run_state.build_info.create_artifacts_directory()) - - target.remove_all([remote_tmp]) - - -class CreateDebianSourcePackagesForRelease(icklib.BuildStep): - - def build(self): - if not self.run_state.build_tags_using_debian_release: - return - - dsc_targets = self._get_dsc_targets(self.targets) - for tag in self.run_state.build_tags_using_debian_release: - for target in dsc_targets: - self.run_state.progress['step'] = ( - 'Create dsc for {} for tag {}'.format( - target.debian_codename, tag)) - self.run_state.logger.important( - 'Creating dsc for {codename} for tag {tag}', - codename=target.debian_codename, - tag=tag) - with self.run_state.logger: - remote_tmp = target.mkdtemp() - self.run_state.clones[0].checkout(tag) - remote_git_dir = target.sync_to_target( - self.run_state.clones[0].dirname, remote_tmp, 'git') - remote_artifacts_dir = target.sync_to_target( - self.run_state.build_info.create_artifacts_directory(), - remote_tmp, 'artifacts') - - cleanly_path = self.project.copy_cleanly_to_target( - target, remote_tmp) - self.project.run_cleanly( - target, remote_git_dir, cleanly_path, - ['--results', remote_artifacts_dir, - '--release', - '--buildno', - str(self.run_state.build_info.build_number), - '--debian-release', target.debian_release, - '--debian-codename', target.debian_codename, - 'dsc']) - - target.sync_from_target( - remote_artifacts_dir, - self.run_state.build_info.create_artifacts_directory()) - - target.remove_all([remote_tmp]) - - def _get_dsc_targets(self, targets): - dsc_targets = [] - codenames = set() - for target in targets: - if target.debian_codename not in codenames: - dsc_targets.append(target) - codenames.add(target.debian_codename) - return dsc_targets - - class CreateCIDebianBinaryPackages(icklib.BuildStep): def build(self): @@ -731,7 +633,7 @@ def create_projects_from_ick(ick, wanted_names): icklib.CreateBuildInfo, icklib.CollectDebianInfoAboutTargets, icklib.CreateCITarball, - CreateDebianSourcePackagesForCI, + icklib.CreateDebianSourcePackagesForCI, CreateCIDebianBinaryPackages, FindDebianChangesFiles, SetupAPTRepository, @@ -747,7 +649,7 @@ def create_projects_from_ick(ick, wanted_names): icklib.CreateBuildInfo, icklib.CollectDebianInfoAboutTargets, icklib.CreateReleaseTarballs, - CreateDebianSourcePackagesForRelease, + icklib.CreateDebianSourcePackagesForRelease, CreateDebianBinaryPackagesForRelease, FindDebianChangesFiles, SetupAPTRepository, diff --git a/icklib/step_debian_source.py b/icklib/step_debian_source.py new file mode 100644 index 0000000..72407cf --- /dev/null +++ b/icklib/step_debian_source.py @@ -0,0 +1,117 @@ +# Copyright 2016 Lars Wirzenius +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +# =*= License: GPL-3+ =*= + + +import icklib + + +class CreateDebianSourcePackagesForCI(icklib.BuildStep): + + def build(self): + if not self.run_state.build_using_debian_ci: + return + + dsc_targets = [] + codenames = set() + for target in self.targets: + if target.debian_codename not in codenames: + dsc_targets.append(target) + codenames.add(target.debian_codename) + + for target in dsc_targets: + self.run_state.progress['step'] = ( + 'Create dsc for {}'.format(target.debian_codename)) + self.run_state.logger.important( + 'Creating dsc for {codename}', + codename=target.debian_codename) + with self.run_state.logger: + remote_tmp = target.mkdtemp() + remote_git_dir = target.sync_to_target( + self.run_state.clones[0].dirname, remote_tmp, 'git') + remote_artifacts_dir = target.sync_to_target( + self.run_state.build_info.create_artifacts_directory(), + remote_tmp, 'artifacts') + + cleanly_path = self.project.copy_cleanly_to_target( + target, remote_tmp) + self.project.run_cleanly( + target, remote_git_dir, cleanly_path, + ['--results', remote_artifacts_dir, + '--ci', + '--buildno', str(self.run_state.build_info.build_number), + '--debian-release', target.debian_release, + '--debian-codename', target.debian_codename, + 'dsc']) + + target.sync_from_target( + remote_artifacts_dir, + self.run_state.build_info.create_artifacts_directory()) + + target.remove_all([remote_tmp]) + + +class CreateDebianSourcePackagesForRelease(icklib.BuildStep): + + def build(self): + if not self.run_state.build_tags_using_debian_release: + return + + dsc_targets = self._get_dsc_targets(self.targets) + for tag in self.run_state.build_tags_using_debian_release: + for target in dsc_targets: + self.run_state.progress['step'] = ( + 'Create dsc for {} for tag {}'.format( + target.debian_codename, tag)) + self.run_state.logger.important( + 'Creating dsc for {codename} for tag {tag}', + codename=target.debian_codename, + tag=tag) + with self.run_state.logger: + remote_tmp = target.mkdtemp() + self.run_state.clones[0].checkout(tag) + remote_git_dir = target.sync_to_target( + self.run_state.clones[0].dirname, remote_tmp, 'git') + remote_artifacts_dir = target.sync_to_target( + self.run_state.build_info.create_artifacts_directory(), + remote_tmp, 'artifacts') + + cleanly_path = self.project.copy_cleanly_to_target( + target, remote_tmp) + self.project.run_cleanly( + target, remote_git_dir, cleanly_path, + ['--results', remote_artifacts_dir, + '--release', + '--buildno', + str(self.run_state.build_info.build_number), + '--debian-release', target.debian_release, + '--debian-codename', target.debian_codename, + 'dsc']) + + target.sync_from_target( + remote_artifacts_dir, + self.run_state.build_info.create_artifacts_directory()) + + target.remove_all([remote_tmp]) + + def _get_dsc_targets(self, targets): + dsc_targets = [] + codenames = set() + for target in targets: + if target.debian_codename not in codenames: + dsc_targets.append(target) + codenames.add(target.debian_codename) + return dsc_targets diff --git a/without-tests b/without-tests index 1297e8b..e002f19 100644 --- a/without-tests +++ b/without-tests @@ -7,6 +7,7 @@ icklib/progress.py icklib/step_build_info.py icklib/step_create_tarball.py icklib/step_debian_info.py +icklib/step_debian_source.py icklib/step_find_current_commit.py icklib/step_find_new_commit.py icklib/step_find_tags_debian_release.py |