summaryrefslogtreecommitdiff
path: root/jenkinstool
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2012-08-12 17:57:26 +0100
committerLars Wirzenius <liw@liw.fi>2012-08-12 17:57:26 +0100
commitc3f4b39aff6b9d2643aa4992fc31e82c289ef157 (patch)
tree8c5ca7d42053483d46c0e6ad05215f78cda5c0da /jenkinstool
parent93ed0aea95d7ef88b40cd86b733cf83296f2d396 (diff)
downloadjenkinstool-c3f4b39aff6b9d2643aa4992fc31e82c289ef157.tar.gz
Add job to create/update pbuilder
Diffstat (limited to 'jenkinstool')
-rwxr-xr-xjenkinstool38
1 files changed, 38 insertions, 0 deletions
diff --git a/jenkinstool b/jenkinstool
index 04d2555..c4bb93e 100755
--- a/jenkinstool
+++ b/jenkinstool
@@ -71,6 +71,10 @@ class JobGenerator(object):
trigger.add_build_trigger(reprepro.job_id())
jobs.append(reprepro)
+ for host in config['hosts']:
+ jc = self.pbuilder_create_job(host)
+ jobs.append(jc)
+
for project in config['projects']:
first_in_project = True
for jc in self.generate_project(config, project):
@@ -91,6 +95,12 @@ class JobGenerator(object):
jc.set_description('A1 Job Trigger')
return jc
+ host = config['hosts'][0]
+ project = {'name': 'a1trigger'}
+ jc = self.create_job_config(host, project, 'trigger')
+ jc.set_description('A1 Job Trigger')
+ return jc
+
def reprepro_setup_job(self, config):
'''Create job that sets up reprepro.'''
@@ -147,6 +157,33 @@ end
jc.add_shell_command(script)
return jc
+
+ def pbuilder_create_job(self, host):
+ '''Create job create/update pbuilder base.tgz.'''
+
+ project = { 'name': 'pbuilder-create' }
+ jc = self.create_job_config(host, project, 'pbuilder-create')
+ jc.set_description(
+ 'Create or update pbuilder base.tgz on %(host.ssh-target)s')
+
+ jc.add_ssh_command('''
+basetgz=/var/cache/pbuilder/base.tgz
+debianurl="%(global.artifacts-url)s/debian"
+if [ -e "$basetgz" ]
+then
+ sudo pbuilder --update --override-config \
+ --distribution "%(host.debian-dist)s" \
+ --mirror "%(global.debian-mirror)s" \
+ --othermirror "deb $(debianurl) %(host.debian-dist)s main"
+else
+ sudo pbuilder --create \
+ --distribution "%(host.debian-dist)s" \
+ --mirror "%(global.debian-mirror)s" \
+ --othermirror "deb $debianurl %(host.debian-dist)s main"
+fi
+''')
+
+ return jc
def generate_project(self, config, project):
'''Generate all the jobs for a given project.'''
@@ -295,6 +332,7 @@ rm -rf "$temp"
'artifacts-url': 'http://192.168.122.218/jenkins',
'dput-host': 'liw-jenkins',
'repreprobase': '/var/www/jenkins/debian',
+ 'debian-mirror': 'http://cdn.debian.net/debian',
})
if 'bzr' in project:
jc.set_bzr(project['bzr'])