summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2016-03-06 22:36:15 +0200
committerLars Wirzenius <liw@liw.fi>2016-03-06 22:36:15 +0200
commit0c31371582ec428ea3930ca18c58956f8292a976 (patch)
tree2b44ffc8073b80e681c3bfcf8d18e68ae85866f6
parente0efc34fff3b4f06efc8afdf70a66771b272130c (diff)
downloadick-0c31371582ec428ea3930ca18c58956f8292a976.tar.gz
Move .dsc creation steps into a module
-rw-r--r--icklib/__init__.py4
-rw-r--r--icklib/project.py102
-rw-r--r--icklib/step_debian_source.py117
-rw-r--r--without-tests1
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