diff options
author | Lars Wirzenius <liw@liw.fi> | 2012-08-11 19:59:56 +0100 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2012-08-11 19:59:56 +0100 |
commit | f5e4826e367d1c524abb826481ea37e4ee2e02e8 (patch) | |
tree | 3a925de9725653b4dfba9f93ee13a61f9e7eae4b /jenkinstool | |
parent | 52e0cec86e7f5f03f2f9eba2a7ab50ba317efdda (diff) | |
download | jenkinstool-f5e4826e367d1c524abb826481ea37e4ee2e02e8.tar.gz |
Create a job to setup reprepro
Diffstat (limited to 'jenkinstool')
-rwxr-xr-x | jenkinstool | 63 |
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']) |