From 5520d332cf2dbe9dda551daa20d79252b0d9ba27 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 22 Sep 2012 02:19:37 +0100 Subject: Nicer progress reporting --- jenkinstool | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'jenkinstool') 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() -- cgit v1.2.1