Title: [292605] trunk/Tools
- Revision
- 292605
- Author
- jbed...@apple.com
- Date
- 2022-04-08 07:52:17 -0700 (Fri, 08 Apr 2022)
Log Message
[Merge-Queue] Comment on PR when failing validation
https://bugs.webkit.org/show_bug.cgi?id=238969
<rdar://problem/91451392>
Reviewed by Aakash Jain.
* Tools/CISupport/ews-build/steps.py:
(ValidateChangeLogAndReviewer.evaluateCommand): Add BlockPullRequest on failure.
(ValidateCommitMessage.evaluateCommand): Block and comment on pull request if
validation fails.
* Tools/CISupport/ews-build/steps_unittest.py:
Canonical link: https://commits.webkit.org/249437@main
Modified Paths
Diff
Modified: trunk/Tools/CISupport/ews-build/steps.py (292604 => 292605)
--- trunk/Tools/CISupport/ews-build/steps.py 2022-04-08 14:32:34 UTC (rev 292604)
+++ trunk/Tools/CISupport/ews-build/steps.py 2022-04-08 14:52:17 UTC (rev 292605)
@@ -1622,7 +1622,10 @@
log_text = self.log_observer.getStdout() + self.log_observer.getStderr()
self.setProperty('comment_text', log_text)
self.setProperty('build_finish_summary', 'ChangeLog validation failed')
- self.build.addStepsAfterCurrentStep([LeaveComment(), SetCommitQueueMinusFlagOnPatch()])
+ self.build.addStepsAfterCurrentStep([
+ LeaveComment(),
+ SetCommitQueueMinusFlagOnPatch(), BlockPullRequest(),
+ ])
return rc
@@ -4933,7 +4936,9 @@
class ValidateCommitMessage(shell.ShellCommand):
name = 'validate-commit-message'
- haltOnFailure = True
+ haltOnFailure = False
+ flunkOnFailure = True
+ OOPS_RE = re.compile(r'\(OO*PP*S!\)')
def __init__(self, **kwargs):
super(ValidateCommitMessage, self).__init__(logEnviron=False, timeout=60, **kwargs)
@@ -4958,21 +4963,26 @@
rc = super(ValidateCommitMessage, self).evaluateCommand(cmd)
if rc == SKIPPED:
return rc
- if rc != SUCCESS:
+
+ if rc == SUCCESS:
+ self.summary = 'Validated commit message'
+ log_text = self.log_observer.getStdout()
+ if self.OOPS_RE.search(log_text):
+ self.summary = 'Commit message contains (OOPS!)'
+ rc = FAILURE
+ elif 'Reviewed by' not in log_text and 'Unreviewed' not in log_text:
+ self.summary = 'No reviewer information in commit message'
+ rc = FAILURE
+ else:
self.summary = 'Error parsing commit message'
- return rc
+ rc = FAILURE
- log_text = self.log_observer.getStdout()
- if '(OOPS!)' in log_text:
- self.summary = 'Commit message contains (OOPS!)'
- return FAILURE
- if 'Reviewed by' not in log_text and 'Unreviewed' not in log_text:
- self.summary = 'No reviewer information in commit message'
- return FAILURE
+ if rc == FAILURE:
+ self.setProperty('comment_text', f"{self.summary}, blocking PR #{self.getProperty('github.number')}")
+ self.setProperty('build_finish_summary', 'Commit message validation failed')
+ self.build.addStepsAfterCurrentStep([LeaveComment(), BlockPullRequest()])
+ return rc
- self.summary = 'Validated commit message'
- return SUCCESS
-
def doStepIf(self, step):
return self.getProperty('github.number')
Modified: trunk/Tools/CISupport/ews-build/steps_unittest.py (292604 => 292605)
--- trunk/Tools/CISupport/ews-build/steps_unittest.py 2022-04-08 14:32:34 UTC (rev 292604)
+++ trunk/Tools/CISupport/ews-build/steps_unittest.py 2022-04-08 14:52:17 UTC (rev 292605)
@@ -6191,7 +6191,9 @@
Reviewed by NOBODY (OOPS!)'''),
)
self.expectOutcome(result=FAILURE, state_string='Commit message contains (OOPS!)')
- return self.runStep()
+ rc = self.runStep()
+ self.assertEqual(self.getProperty('comment_text'), 'Commit message contains (OOPS!), blocking PR #1234')
+ return rc
def test_failure_no_reviewer(self):
self.setupStep(ValidateCommitMessage())
@@ -6209,7 +6211,9 @@
<rdar://problem/90602594>'''),
)
self.expectOutcome(result=FAILURE, state_string='No reviewer information in commit message')
- return self.runStep()
+ rc = self.runStep()
+ self.assertEqual(self.getProperty('comment_text'), 'No reviewer information in commit message, blocking PR #1234')
+ return rc
class TestCanonicalize(BuildStepMixinAdditions, unittest.TestCase):
Modified: trunk/Tools/ChangeLog (292604 => 292605)
--- trunk/Tools/ChangeLog 2022-04-08 14:32:34 UTC (rev 292604)
+++ trunk/Tools/ChangeLog 2022-04-08 14:52:17 UTC (rev 292605)
@@ -1,5 +1,19 @@
2022-04-07 Jonathan Bedard <jbed...@apple.com>
+ [Merge-Queue] Comment on PR when failing validation
+ https://bugs.webkit.org/show_bug.cgi?id=238969
+ <rdar://problem/91451392>
+
+ Reviewed by Aakash Jain.
+
+ * CISupport/ews-build/steps.py:
+ (ValidateChangeLogAndReviewer.evaluateCommand): Add BlockPullRequest on failure.
+ (ValidateCommitMessage.evaluateCommand): Block and comment on pull request if
+ validation fails.
+ * CISupport/ews-build/steps_unittest.py:
+
+2022-04-07 Jonathan Bedard <jbed...@apple.com>
+
[Merge-Queue] Reset git-svn cache on commit failure
https://bugs.webkit.org/show_bug.cgi?id=238975
<rdar://problem/91454550>
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes