summaryrefslogtreecommitdiff
path: root/jenkinstool
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2012-08-11 19:59:56 +0100
committerLars Wirzenius <liw@liw.fi>2012-08-11 19:59:56 +0100
commitf5e4826e367d1c524abb826481ea37e4ee2e02e8 (patch)
tree3a925de9725653b4dfba9f93ee13a61f9e7eae4b /jenkinstool
parent52e0cec86e7f5f03f2f9eba2a7ab50ba317efdda (diff)
downloadjenkinstool-f5e4826e367d1c524abb826481ea37e4ee2e02e8.tar.gz
Create a job to setup reprepro
Diffstat (limited to 'jenkinstool')
-rwxr-xr-xjenkinstool63
1 files changed, 63 insertions, 0 deletions
diff --git a/jenkinstool b/jenkinstool
index 73bed1d..863e518 100755
--- a/jenkinstool
+++ b/jenkinstool
@@ -66,6 +66,11 @@ class JobGenerator(object):
trigger = self.trigger_everything_job(config)
jobs = [trigger]
+
+ jc = self.reprepro_setup_job(config)
+ trigger.add_build_trigger(jc.job_id())
+ jobs.append(jc)
+
for project in config['projects']:
first_in_project = True
for jc in self.generate_project(config, project):
@@ -86,6 +91,63 @@ class JobGenerator(object):
jc.set_description('A1 Job Trigger')
return jc
+ def reprepro_setup_job(self, config):
+ '''Create job that sets up reprepro.'''
+
+ host = { 'name': 'localhost' }
+ project = { 'name': 'reprepro-setup' }
+ jc = self.create_job_config(host, project, 'reprepro-setup')
+ script = '''
+base="%(global.repreprobase)s"
+mkdir -p "$base"
+mkdir -p "$base/incoming"
+mkdir -p "$base/incoming.temp"
+mkdir -p "$base/conf"
+
+cat <<end > "$base/conf/uploaders"
+allow * by anybody
+end
+'''
+
+ archs = set()
+ dists = set()
+ for host in config['hosts']:
+ if 'arch' in host:
+ archs.add(host['arch'])
+ if 'debian-dist' in host:
+ dists.add(host['debian-dist'])
+
+ for dist in dists:
+ script += '''
+cat <<end > "$base/conf/distributions"
+Codename: %(dist)s
+Suite: %(dist)s
+Origin: code.liw.fi
+Description: packages from code.liw.fi built for Debian squeeze
+Architectures: source %(archs)s
+Components: main
+Uploaders: uploaders
+Tracking: keep
+end
+''' % {
+ 'dist': dist,
+ 'archs': ' '.join(archs),
+}
+
+ script += '''
+cat <<end > "$base/conf/incoming"
+Name: default
+IncomingDir: incoming
+TempDir: incoming.temp
+Allow: %(dists)s
+end
+''' % {
+ 'dists': ' '.join(dists),
+}
+
+ jc.add_shell_command(script)
+ return jc
+
def generate_project(self, config, project):
'''Generate all the jobs for a given project.'''
main_host = config['hosts'][0]
@@ -179,6 +241,7 @@ dput -f "%(global.dput-host)s" "../${sourcepkg}_${version}-1_source.changes"
'artifacts': '/var/www/jenkins',
'artifacts-url': 'http://192.168.122.218/jenkins',
'dput-host': 'liw-jenkins',
+ 'repreprobase': '/var/www/jenkins/debian',
})
if 'bzr' in project:
jc.set_bzr(project['bzr'])