summaryrefslogtreecommitdiff
path: root/jenkinstool
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2012-09-22 02:19:37 +0100
committerLars Wirzenius <liw@liw.fi>2012-09-22 02:19:37 +0100
commit5520d332cf2dbe9dda551daa20d79252b0d9ba27 (patch)
tree6753a97861cc0fcff3bd4e35486f3b5e2c526078 /jenkinstool
parented4ca896a6214b4ef1c07cd8a40b47bac3fbb9ae (diff)
downloadjenkinstool-5520d332cf2dbe9dda551daa20d79252b0d9ba27.tar.gz
Nicer progress reporting
Diffstat (limited to 'jenkinstool')
-rwxr-xr-xjenkinstool20
1 files changed, 13 insertions, 7 deletions
diff --git a/jenkinstool b/jenkinstool
index 8c1449b..21b4497 100755
--- a/jenkinstool
+++ b/jenkinstool
@@ -23,6 +23,7 @@ import json
import logging
import StringIO
import time
+import ttystatus
from xml.etree import ElementTree as ET
import simplejenkinsapi
@@ -755,26 +756,31 @@ class JenkinsTool(cliapp.Application):
for job_id in jenkins.list_jobs():
if job_id not in job_ids:
jenkins.delete_job(job_id)
-
- print 'jobs:', job_ids
+ ts = ttystatus.TerminalStatus(period=0)
+ ts.format('Running job %Index(job,jobs) %String(job)')
+ ts['jobs'] = job_ids
+
for job_id in job_ids:
- print 'running', job_id
+ ts['job'] = 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)
-
+ ts.clear()
+ ts.finish()
+ url = '%s/job/%s/%s/console' % \
+ (self.settings['jenkins-host'], job_id, latest)
+ raise cliapp.AppException('Job %s failed: %s' % (job_id, url))
+
+ ts.finish()
JenkinsTool(version=simplejenkinsapi.__version__).run()