Skip to content

Commit

Permalink
Rollup merge of rust-lang#61938 - RalfJung:miri-toolstate, r=kennytm
Browse files Browse the repository at this point in the history
create an issue for miri even in status test-fail

I fired up python to see that this parses, but I wouldn't know how to test this script.
  • Loading branch information
Centril authored Jun 18, 2019
2 parents 0bb197c + d8eea92 commit 0b8da29
Showing 1 changed file with 17 additions and 8 deletions.
25 changes: 17 additions & 8 deletions src/tools/publish_toolstate.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ def maybe_delink(message):

def issue(
tool,
status,
maintainers,
relevant_pr_number,
relevant_pr_user,
Expand All @@ -72,20 +73,27 @@ def issue(
# Open an issue about the toolstate failure.
assignees = [x.strip() for x in maintainers.split('@') if x != '']
assignees.append(relevant_pr_user)
if status == 'test-fail':
status_description = 'has failing tests'
else:
status_description = 'no longer builds'
response = urllib2.urlopen(urllib2.Request(
gh_url(),
json.dumps({
'body': maybe_delink(textwrap.dedent('''\
Hello, this is your friendly neighborhood mergebot.
After merging PR {}, I observed that the tool {} no longer builds.
After merging PR {}, I observed that the tool {} {}.
A follow-up PR to the repository {} is needed to fix the fallout.
cc @{}, do you think you would have time to do the follow-up work?
If so, that would be great!
cc @{}, the PR reviewer, and @rust-lang/compiler -- nominating for prioritization.
''').format(relevant_pr_number, tool, REPOS.get(tool), relevant_pr_user, pr_reviewer)),
''').format(
relevant_pr_number, tool, status_description,
REPOS.get(tool), relevant_pr_user, pr_reviewer
)),
'title': '`{}` no longer builds after {}'.format(tool, relevant_pr_number),
'assignees': assignees,
'labels': ['T-compiler', 'I-nominated'],
Expand Down Expand Up @@ -127,7 +135,7 @@ def update_latest(
for status in latest:
tool = status['tool']
changed = False
build_failed = False
create_issue = False

for os, s in current_status.items():
old = status[os]
Expand All @@ -145,14 +153,15 @@ def update_latest(
.format(tool, os, old, new)
message += '{} (cc {}, @rust-lang/infra).\n' \
.format(title, MAINTAINERS.get(tool))
# only create issues for build failures. Other failures can be spurious
if new == 'build-fail':
build_failed = True
# Most tools only create issues for build failures.
# Other failures can be spurious.
if new == 'build-fail' or (tool == 'miri' and new == 'test-fail'):
create_issue = True

if build_failed:
if create_issue:
try:
issue(
tool, MAINTAINERS.get(tool, ''),
tool, new, MAINTAINERS.get(tool, ''),
relevant_pr_number, relevant_pr_user, pr_reviewer,
)
except IOError as e:
Expand Down

0 comments on commit 0b8da29

Please sign in to comment.