]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
autobuild: Return the last 50 log lines
authorGarming Sam <garming@catalyst.net.nz>
Mon, 14 Mar 2016 01:18:54 +0000 (14:18 +1300)
committerStefan Metzmacher <metze@samba.org>
Tue, 16 Aug 2016 07:59:11 +0000 (09:59 +0200)
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>
(cherry picked from commit 3751ffbbe75524984a822d65f623a040ca79c8f7)

script/autobuild.py

index 54e88f952007c5412767a0ea84ef710f18bc02cf..651f22b96df3aeb1ade966d6d0a5d3879ab62810 100755 (executable)
@@ -515,7 +515,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")
@@ -553,6 +553,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),