Rollup merge of #64502 - RalfJung:miri-toolstate, r=pietroalbini

avoid duplicate issues for Miri build failures

Currently, when Miri regressed from test-pass to test-fail, we pen an issue -- and then when it regresses further from test-fail to build-fail, we open a *second* issue.

This changes the logic to avoid the redundant second issue for Miri.

r? @pietroalbini @kennytm
This commit is contained in:
Tyler Mandry 2019-09-17 14:10:51 -07:00 committed by GitHub
commit 3a1390cdca
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -201,7 +201,9 @@ def update_latest(
new = s.get(tool, old) new = s.get(tool, old)
status[os] = new status[os] = new
maintainers = ' '.join('@'+name for name in MAINTAINERS[tool]) maintainers = ' '.join('@'+name for name in MAINTAINERS[tool])
if new > old: # comparing the strings, but they are ordered appropriately! # comparing the strings, but they are ordered appropriately:
# "test-pass" > "test-fail" > "build-fail"
if new > old:
# things got fixed or at least the status quo improved # things got fixed or at least the status quo improved
changed = True changed = True
message += '🎉 {} on {}: {}{} (cc {}, @rust-lang/infra).\n' \ message += '🎉 {} on {}: {}{} (cc {}, @rust-lang/infra).\n' \
@ -213,10 +215,17 @@ def update_latest(
.format(tool, os, old, new) .format(tool, os, old, new)
message += '{} (cc {}, @rust-lang/infra).\n' \ message += '{} (cc {}, @rust-lang/infra).\n' \
.format(title, maintainers) .format(title, maintainers)
# Most tools only create issues for build failures. # See if we need to create an issue.
# Other failures can be spurious. if tool == 'miri':
if new == 'build-fail' or (tool == 'miri' and new == 'test-fail'): # Create issue if tests used to pass before. Don't open a *second*
create_issue_for_status = new # issue when we regress from "test-fail" to "build-fail".
if old == 'test-pass':
create_issue_for_status = new
else:
# Create issue if things no longer build.
# (No issue for mere test failures to avoid spurious issues.)
if new == 'build-fail':
create_issue_for_status = new
if create_issue_for_status is not None: if create_issue_for_status is not None:
try: try: