diff options
author | Lars Wirzenius <liw@liw.fi> | 2016-03-06 22:33:58 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2016-03-06 22:33:58 +0200 |
commit | e0efc34fff3b4f06efc8afdf70a66771b272130c (patch) | |
tree | 2bbf0cf02e40782854925480dd51e1bf9f7abeb8 | |
parent | ccd2b842db6cc3fbad04202f7af2bb3e1a46f0cd (diff) | |
download | ick-e0efc34fff3b4f06efc8afdf70a66771b272130c.tar.gz |
Move tarball creation steps into a module
-rw-r--r-- | icklib/__init__.py | 1 | ||||
-rw-r--r-- | icklib/project.py | 77 | ||||
-rw-r--r-- | icklib/step_create_tarball.py | 92 | ||||
-rw-r--r-- | without-tests | 1 |
4 files changed, 96 insertions, 75 deletions
diff --git a/icklib/__init__.py b/icklib/__init__.py index 499106a..47567e0 100644 --- a/icklib/__init__.py +++ b/icklib/__init__.py @@ -24,6 +24,7 @@ from .run_state import RunState from .pipeline import BuildPipeline 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_find_current_commit import FindCurrentGitCommits from .step_find_new_commit import ( diff --git a/icklib/project.py b/icklib/project.py index 91c1263..dacd980 100644 --- a/icklib/project.py +++ b/icklib/project.py @@ -223,79 +223,6 @@ class Project(object): remote_git_dir) -class CreateCITarball(icklib.BuildStep): - - def build(self): - if not self.run_state.build_using_debian_ci: - return - - self.run_state.progress['step'] = 'Creating CI tarball' - self.run_state.logger.important('Creating CI tarball') - with self.run_state.logger: - tarball_target = self.targets[0] - remote_tmp = tarball_target.mkdtemp() - - remote_git_dir = tarball_target.sync_to_target( - self.run_state.clones[0].dirname, remote_tmp, 'git') - remote_artifacts_dir = tarball_target.sync_to_target( - self.run_state.build_info.create_artifacts_directory(), - remote_tmp, 'artifacts') - - cleanly_path = self.project.copy_cleanly_to_target( - tarball_target, remote_tmp) - self.project.run_cleanly( - tarball_target, remote_git_dir, cleanly_path, - ['--results', remote_artifacts_dir, - '--ci', - '--buildno', str(self.run_state.build_info.build_number), - '--debian-release', tarball_target.debian_release, - '--debian-codename', tarball_target.debian_codename, - 'tarball']) - - tarball_target.sync_from_target( - remote_artifacts_dir, - self.run_state.build_info.create_artifacts_directory()) - - tarball_target.remove_all([remote_tmp]) - - -class CreateReleaseTarballs(icklib.BuildStep): - - def build(self): - target = self.targets[0] - for tag in sorted(self.run_state.build_tags_using_debian_release): - self.run_state.progress['step'] = ( - 'Create release tarball for {}'.format(tag)) - self.run_state.logger.important( - 'Creating release tarball for tag {tag}', - 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, - 'tarball']) - - target.sync_from_target( - remote_artifacts_dir, - self.run_state.build_info.create_artifacts_directory()) - - target.remove_all([remote_tmp]) - - class CreateDebianSourcePackagesForCI(icklib.BuildStep): def build(self): @@ -803,7 +730,7 @@ def create_projects_from_ick(ick, wanted_names): icklib.FindNewCommitToBuildForDebianCI, icklib.CreateBuildInfo, icklib.CollectDebianInfoAboutTargets, - CreateCITarball, + icklib.CreateCITarball, CreateDebianSourcePackagesForCI, CreateCIDebianBinaryPackages, FindDebianChangesFiles, @@ -819,7 +746,7 @@ def create_projects_from_ick(ick, wanted_names): icklib.FindTagsToBuildForDebianRelease, icklib.CreateBuildInfo, icklib.CollectDebianInfoAboutTargets, - CreateReleaseTarballs, + icklib.CreateReleaseTarballs, CreateDebianSourcePackagesForRelease, CreateDebianBinaryPackagesForRelease, FindDebianChangesFiles, diff --git a/icklib/step_create_tarball.py b/icklib/step_create_tarball.py new file mode 100644 index 0000000..f60ecb7 --- /dev/null +++ b/icklib/step_create_tarball.py @@ -0,0 +1,92 @@ +# 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 CreateCITarball(icklib.BuildStep): + + def build(self): + if not self.run_state.build_using_debian_ci: + return + + self.run_state.progress['step'] = 'Creating CI tarball' + self.run_state.logger.important('Creating CI tarball') + with self.run_state.logger: + tarball_target = self.targets[0] + remote_tmp = tarball_target.mkdtemp() + + remote_git_dir = tarball_target.sync_to_target( + self.run_state.clones[0].dirname, remote_tmp, 'git') + remote_artifacts_dir = tarball_target.sync_to_target( + self.run_state.build_info.create_artifacts_directory(), + remote_tmp, 'artifacts') + + cleanly_path = self.project.copy_cleanly_to_target( + tarball_target, remote_tmp) + self.project.run_cleanly( + tarball_target, remote_git_dir, cleanly_path, + ['--results', remote_artifacts_dir, + '--ci', + '--buildno', str(self.run_state.build_info.build_number), + '--debian-release', tarball_target.debian_release, + '--debian-codename', tarball_target.debian_codename, + 'tarball']) + + tarball_target.sync_from_target( + remote_artifacts_dir, + self.run_state.build_info.create_artifacts_directory()) + + tarball_target.remove_all([remote_tmp]) + + +class CreateReleaseTarballs(icklib.BuildStep): + + def build(self): + target = self.targets[0] + for tag in sorted(self.run_state.build_tags_using_debian_release): + self.run_state.progress['step'] = ( + 'Create release tarball for {}'.format(tag)) + self.run_state.logger.important( + 'Creating release tarball for tag {tag}', + 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, + 'tarball']) + + target.sync_from_target( + remote_artifacts_dir, + self.run_state.build_info.create_artifacts_directory()) + + target.remove_all([remote_tmp]) diff --git a/without-tests b/without-tests index 3bb59b9..1297e8b 100644 --- a/without-tests +++ b/without-tests @@ -5,6 +5,7 @@ icklib/info.py icklib/version.py icklib/progress.py icklib/step_build_info.py +icklib/step_create_tarball.py icklib/step_debian_info.py icklib/step_find_current_commit.py icklib/step_find_new_commit.py |