summaryrefslogtreecommitdiff
path: root/script
diff options
context:
space:
mode:
authorGarming Sam <garming@catalyst.net.nz>2016-03-14 14:18:54 +1300
committerGarming Sam <garming@samba.org>2016-05-03 08:10:10 +0200
commit3751ffbbe75524984a822d65f623a040ca79c8f7 (patch)
tree909d053c2f0bba34cacbfc47b5f7080076c3ad15 /script
parent81f4e5383f1035716da0e9683521492e14cc250b (diff)
downloadsamba-3751ffbbe75524984a822d65f623a040ca79c8f7.tar.gz
autobuild: Return the last 50 log lines
This means that you don't have to deal with tars for quickly determining the cause of a failure. Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Diffstat (limited to 'script')
-rwxr-xr-xscript/autobuild.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/script/autobuild.py b/script/autobuild.py
index 4cad9203339..1b756caa8e2 100755
--- a/script/autobuild.py
+++ b/script/autobuild.py
@@ -566,7 +566,7 @@ def send_email(subject, text, log_tar):
s.quit()
def email_failure(status, failed_task, failed_stage, failed_tag, errstr,
- elapsed_time, log_base=None):
+ elapsed_time, log_base=None, add_log_tail=True):
'''send an email to options.email about the failure'''
elapsed_minutes = elapsed_time / 60.0
user = os.getenv("USER")
@@ -604,6 +604,23 @@ The top commit for the tree that was built was:
''' % (log_base, failed_tag, log_base, failed_tag, log_base, top_commit_msg)
+ if add_log_tail:
+ f = open("%s/%s.stdout" % (gitroot, failed_tag), 'r')
+ lines = f.readlines()
+ log_tail = "".join(lines[-50:])
+ num_lines = len(lines)
+ if num_lines < 50:
+ # Also include stderr (compile failures) if < 50 lines of stdout
+ f = open("%s/%s.stderr" % (gitroot, failed_tag), 'r')
+ log_tail += "".join(f.readlines()[-(50-num_lines):])
+
+ text += '''
+The last 50 lines of log messages:
+
+%s
+ ''' % log_tail
+ f.close()
+
logs = os.path.join(gitroot, 'logs.tar.gz')
send_email('autobuild failure on %s for task %s during %s'
% (platform.node(), failed_task, failed_stage),