diff --git a/ci.py b/ci.py index 8c8ff97..ea4bda0 100755 --- a/ci.py +++ b/ci.py @@ -80,6 +80,8 @@ def parse_args(): {content} +{test_log_link} + --- Regards, Linux Bluetooth @@ -122,9 +124,11 @@ def get_receivers(email_config, submitter): def send_email(ci_data, content): headers = {} email_config = ci_data.config['email'] + pr = ci_data.gh.get_pr(ci_data.config['pr_num'], force=True) body = EMAIL_MESSAGE.format(pw_link=ci_data.series['web_url'], - content=content) + content=content, + test_log_link=f"{pr.html_url}/checks") headers['In-Reply-To'] = ci_data.patch_1['msgid'] headers['References'] = ci_data.patch_1['msgid'] diff --git a/ci/testrunner.py b/ci/testrunner.py index 1db1215..3aeb3fa 100755 --- a/ci/testrunner.py +++ b/ci/testrunner.py @@ -75,7 +75,8 @@ def run(self): failed_tc = [] # verdict result - for line in stdout_clean.splitlines(): + lines = stdout_clean.splitlines() + for lineno, line in enumerate(lines): if re.search(r"^Total: ", line): self.test_summary = line @@ -113,7 +114,14 @@ def run(self): if re.search(r"^(BUG:|WARNING:|general protection fault|Kernel panic)", line): bug = line - self.add_failure(line) + splat = lines[lineno:lineno+40] + for j, splatline in enumerate(splat): + if '' in splatline or '---[ end trace' in splatline: + splat = splat[:j] + break + else: + splat = splat + ["..."] + self.add_failure("\n".join(splat)) if re.search(r"^Test Summary", line): self.log_dbg("Start to check fail in the line")