1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-03 01:18:10 +03:00

autobuild email mentions the elapsed time

This is occasionally very useful. When it is not, it is easily ignored.

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>

Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Wed Jun 10 13:26:21 CEST 2015 on sn-devel-104
This commit is contained in:
Douglas Bagnall 2015-05-28 13:46:23 +12:00 committed by Andrew Bartlett
parent d0f76510a9
commit 81f05927b8

View File

@ -514,15 +514,19 @@ def send_email(subject, text, log_tar):
s.set_debuglevel(1) s.set_debuglevel(1)
s.quit() s.quit()
def email_failure(status, failed_task, failed_stage, failed_tag, errstr, log_base=None): def email_failure(status, failed_task, failed_stage, failed_tag, errstr,
elapsed_time, log_base=None):
'''send an email to options.email about the failure''' '''send an email to options.email about the failure'''
elapsed_minutes = elapsed_time / 60.0
user = os.getenv("USER") user = os.getenv("USER")
if log_base is None: if log_base is None:
log_base = gitroot log_base = gitroot
text = ''' text = '''
Dear Developer, Dear Developer,
Your autobuild on %s failed when trying to test %s with the following error: Your autobuild on %s failed after %.1f minutes
when trying to test %s with the following error:
%s %s
the autobuild has been abandoned. Please fix the error and resubmit. the autobuild has been abandoned. Please fix the error and resubmit.
@ -530,7 +534,7 @@ the autobuild has been abandoned. Please fix the error and resubmit.
A summary of the autobuild process is here: A summary of the autobuild process is here:
%s/autobuild.log %s/autobuild.log
''' % (platform.node(), failed_task, errstr, log_base) ''' % (platform.node(), elapsed_minutes, failed_task, errstr, log_base)
if failed_task != 'rebase': if failed_task != 'rebase':
text += ''' text += '''
@ -554,7 +558,7 @@ The top commit for the tree that was built was:
% (platform.node(), failed_task, failed_stage), % (platform.node(), failed_task, failed_stage),
text, logs) text, logs)
def email_success(log_base=None): def email_success(elapsed_time, log_base=None):
'''send an email to options.email about a successful build''' '''send an email to options.email about a successful build'''
user = os.getenv("USER") user = os.getenv("USER")
if log_base is None: if log_base is None:
@ -562,9 +566,9 @@ def email_success(log_base=None):
text = ''' text = '''
Dear Developer, Dear Developer,
Your autobuild on %s has succeeded. Your autobuild on %s has succeeded after %.1f minutes.
''' % platform.node() ''' % (platform.node(), elapsed_time / 60.)
if options.keeplogs: if options.keeplogs:
text += ''' text += '''
@ -611,6 +615,8 @@ if options.daemon:
write_pidfile(gitroot + "/autobuild.pid") write_pidfile(gitroot + "/autobuild.pid")
start_time = time.time()
while True: while True:
try: try:
run_cmd("rm -rf %s" % test_master) run_cmd("rm -rf %s" % test_master)
@ -627,9 +633,10 @@ while True:
except Exception: except Exception:
cleanup_list.append(gitroot + "/autobuild.pid") cleanup_list.append(gitroot + "/autobuild.pid")
cleanup() cleanup()
elapsed_time = time.time() - start_time
email_failure(-1, 'rebase', 'rebase', 'rebase', email_failure(-1, 'rebase', 'rebase', 'rebase',
'rebase on %s failed' % options.branch, 'rebase on %s failed' % options.branch,
log_base=options.log_base) elapsed_time, log_base=options.log_base)
sys.exit(1) sys.exit(1)
blist = buildlist(tasks, args, options.rebase, rebase_branch=options.branch) blist = buildlist(tasks, args, options.rebase, rebase_branch=options.branch)
if options.tail: if options.tail:
@ -649,6 +656,7 @@ if options.tail:
print("waiting for tail to flush") print("waiting for tail to flush")
time.sleep(1) time.sleep(1)
elapsed_time = time.time() - start_time
if status == 0: if status == 0:
print errstr print errstr
if options.passcmd is not None: if options.passcmd is not None:
@ -660,7 +668,7 @@ if status == 0:
blist.tarlogs("logs.tar.gz") blist.tarlogs("logs.tar.gz")
print("Logs in logs.tar.gz") print("Logs in logs.tar.gz")
if options.always_email: if options.always_email:
email_success(log_base=options.log_base) email_success(elapsed_time, log_base=options.log_base)
blist.remove_logs() blist.remove_logs()
cleanup() cleanup()
print(errstr) print(errstr)
@ -670,7 +678,8 @@ if status == 0:
blist.tarlogs("logs.tar.gz") blist.tarlogs("logs.tar.gz")
if options.email is not None: if options.email is not None:
email_failure(status, failed_task, failed_stage, failed_tag, errstr, log_base=options.log_base) email_failure(status, failed_task, failed_stage, failed_tag, errstr,
elapsed_time, log_base=options.log_base)
cleanup() cleanup()
print(errstr) print(errstr)