summaryrefslogtreecommitdiff
path: root/jenkinstool
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2012-08-11 19:03:55 +0100
committerLars Wirzenius <liw@liw.fi>2012-08-11 19:03:55 +0100
commit952c79f64cc8f3bade491b6c08fe29320db40206 (patch)
tree5d3008c9de520f8618dfb95e4e8994864f053b7f /jenkinstool
parent59ba6cfef84899838fc0826bb7f73c679fcf5a6b (diff)
downloadjenkinstool-952c79f64cc8f3bade491b6c08fe29320db40206.tar.gz
Add job that triggers build of all projects
Diffstat (limited to 'jenkinstool')
-rwxr-xr-xjenkinstool25
1 files changed, 21 insertions, 4 deletions
diff --git a/jenkinstool b/jenkinstool
index 5a10974..c3b3131 100755
--- a/jenkinstool
+++ b/jenkinstool
@@ -64,11 +64,27 @@ class JobGenerator(object):
'''
+ trigger = self.trigger_everything_job(config)
+ jobs = [trigger]
for project in config['projects']:
+ first_in_project = True
for jc in self.generate_project(config, project):
- logging.debug('yielding job id %s' % jc.job_id())
- logging.debug('yielding config.xml:\n%s' % jc.tostring())
- yield jc.job_id(), jc.tostring()
+ jobs.append(jc)
+ if first_in_project:
+ trigger.add_build_trigger(jc.job_id())
+ first_in_project = False
+
+ for jc in jobs:
+ yield jc.job_id(), jc.tostring()
+
+ def trigger_everything_job(self, config):
+ '''Create job that triggers every other job.'''
+
+ host = config['hosts'][0]
+ project = {'name': 'trigger'}
+ jc = self.create_job_config(host, project, 'trigger')
+ jc.set_description('A1 Job Trigger')
+ return jc
def generate_project(self, config, project):
'''Generate all the jobs for a given project.'''
@@ -159,7 +175,8 @@ debuild -S -us -uc
'artifacts': '/var/www/jenkins',
'artifacts-url': 'http://192.168.122.218/jenkins',
})
- jc.set_bzr(project['bzr'])
+ if 'bzr' in project:
+ jc.set_bzr(project['bzr'])
return jc
def add_rsync_workspace_to_target(self, jc):