diff options
Diffstat (limited to 'jenkinstool')
-rwxr-xr-x | jenkinstool | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/jenkinstool b/jenkinstool index 2ddecad..8c1449b 100755 --- a/jenkinstool +++ b/jenkinstool @@ -22,6 +22,7 @@ import cliapp import json import logging import StringIO +import time from xml.etree import ElementTree as ET import simplejenkinsapi @@ -741,20 +742,39 @@ class JenkinsTool(cliapp.Application): else: jenkins.create_job(job_id, config_xml) - job_ids = set() + job_ids = [] for job_id, config_xml in job_generator.generate_setup_jobs(config): make_it_so(job_id, config_xml) - job_ids.add(job_id) + job_ids.append(job_id) for project in simplejenkinsapi.order(config['projects']): pairs = job_generator.generate_project(config, project) for job_id, config_xml in pairs: make_it_so(job_id, config_xml) - job_ids.add(job_id) + job_ids.append(job_id) for job_id in jenkins.list_jobs(): if job_id not in job_ids: jenkins.delete_job(job_id) + print 'jobs:', job_ids + + for job_id in job_ids: + print 'running', job_id + prev = latest = jenkins.get_latest_build_number(job_id) + print 'prev:', repr(prev) + jenkins.run_job(job_id) + while latest == prev: + time.sleep(1) + latest = jenkins.get_latest_build_number(job_id) + print 'latest:', repr(latest) + while True: + time.sleep(1) + info = jenkins.get_build_info(job_id, latest) + if info['result'] is not None: + break + if info['result'] != 'SUCCESS': + raise cliapp.AppException('Job %s failed' % job_id) + JenkinsTool(version=simplejenkinsapi.__version__).run() |