Title: [258999] trunk/Tools
Revision
258999
Author
aakash_j...@apple.com
Date
2020-03-25 11:24:31 -0700 (Wed, 25 Mar 2020)

Log Message

[ews] commit-queue should comment on bug if it fails to find any modified ChangeLog
https://bugs.webkit.org/show_bug.cgi?id=209550

Reviewed by Jonathan Bedard.

* BuildSlaveSupport/ews-build/steps.py:
(FindModifiedChangeLogs): Set haltOnFailure to false.
(FindModifiedChangeLogs.getResultSummary):
(FindModifiedChangeLogs.evaluateCommand): Add build steps to comment on bug and set cq- on patch appropriately.
* BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.

Modified Paths

Diff

Modified: trunk/Tools/BuildSlaveSupport/ews-build/steps.py (258998 => 258999)


--- trunk/Tools/BuildSlaveSupport/ews-build/steps.py	2020-03-25 18:11:47 UTC (rev 258998)
+++ trunk/Tools/BuildSlaveSupport/ews-build/steps.py	2020-03-25 18:24:31 UTC (rev 258999)
@@ -2464,7 +2464,7 @@
     name = 'find-modified-changelogs'
     descriptionDone = ['Found modified ChangeLogs']
     command = ['git', 'diff', '-r', '--name-status', '--no-renames', '--no-ext-diff', '--full-index']
-    haltOnFailure = True
+    haltOnFailure = False
 
     def __init__(self, **kwargs):
         shell.ShellCommand.__init__(self, timeout=3 * 60, logEnviron=False, **kwargs)
@@ -2476,7 +2476,8 @@
 
     def getResultSummary(self):
         if self.results != SUCCESS:
-            return {u'step': u'Failed to find list of modified ChangeLogs'}
+            patch_id = self.getProperty('patch_id', '')
+            return {u'step': u'Failed to find any modified ChangeLog in Patch {}'.format(patch_id)}
         return shell.ShellCommand.getResultSummary(self)
 
     def evaluateCommand(self, cmd):
@@ -2484,6 +2485,15 @@
         log_text = self.log_observer.getStdout() + self.log_observer.getStderr()
         modified_changelogs = self.extract_changelogs(log_text, self._status_regexp('MA'))
         self.setProperty('modified_changelogs', modified_changelogs)
+        if rc == FAILURE or not modified_changelogs:
+            patch_id = self.getProperty('patch_id', '')
+            message = 'Unable to find any modified ChangeLog in Patch {}'.format(patch_id)
+            if self.getProperty('buildername', '').lower() == 'commit-queue':
+                self.setProperty('bugzilla_comment_text', message.replace('Patch', 'Attachment'))
+                self.setProperty('build_finish_summary', message)
+                self.build.addStepsAfterCurrentStep([CommentOnBug(), SetCommitQueueMinusFlagOnPatch()])
+            else:
+                self.build.buildFinished([message], FAILURE)
         return rc
 
     def is_path_to_changelog(self, path):

Modified: trunk/Tools/BuildSlaveSupport/ews-build/steps_unittest.py (258998 => 258999)


--- trunk/Tools/BuildSlaveSupport/ews-build/steps_unittest.py	2020-03-25 18:11:47 UTC (rev 258998)
+++ trunk/Tools/BuildSlaveSupport/ews-build/steps_unittest.py	2020-03-25 18:24:31 UTC (rev 258999)
@@ -3148,6 +3148,8 @@
 
     def test_modified_changelogs(self):
         self.setupStep(FindModifiedChangeLogs())
+        self.assertEqual(FindModifiedChangeLogs.haltOnFailure, False)
+        self.setProperty('buildername', 'Commit-Queue')
         self.expectRemoteCommands(
             ExpectShell(workdir='wkdir',
                         timeout=180,
@@ -3163,6 +3165,8 @@
         self.expectOutcome(result=SUCCESS, state_string='Found modified ChangeLogs')
         rc = self.runStep()
         self.assertEqual(self.getProperty('modified_changelogs'), ['Source/WebCore/ChangeLog', 'Tools/ChangeLog'])
+        self.assertEqual(self.getProperty('bugzilla_comment_text'), None)
+        self.assertEqual(self.getProperty('build_finish_summary'), None)
         return rc
 
     def test_success_added_changelog(self):
@@ -3179,10 +3183,14 @@
         self.expectOutcome(result=SUCCESS, state_string='Found modified ChangeLogs')
         rc = self.runStep()
         self.assertEqual(self.getProperty('modified_changelogs'), ['Tools/Scripts/ChangeLog'])
+        self.assertEqual(self.getProperty('bugzilla_comment_text'), None)
+        self.assertEqual(self.getProperty('build_finish_summary'), None)
         return rc
 
     def test_failure(self):
         self.setupStep(FindModifiedChangeLogs())
+        self.setProperty('patch_id', '1234')
+        self.setProperty('buildername', 'Commit-Queue')
         self.expectRemoteCommands(
             ExpectShell(workdir='wkdir',
                         timeout=180,
@@ -3191,8 +3199,11 @@
             ExpectShell.log('stdio', stdout='Unexpected failure') +
             2,
         )
-        self.expectOutcome(result=FAILURE, state_string='Failed to find list of modified ChangeLogs')
-        return self.runStep()
+        self.expectOutcome(result=FAILURE, state_string='Failed to find any modified ChangeLog in Patch 1234')
+        rc = self.runStep()
+        self.assertEqual(self.getProperty('bugzilla_comment_text'), 'Unable to find any modified ChangeLog in Attachment 1234')
+        self.assertEqual(self.getProperty('build_finish_summary'), 'Unable to find any modified ChangeLog in Patch 1234')
+        return rc
 
 
 class TestCreateLocalGITCommit(BuildStepMixinAdditions, unittest.TestCase):

Modified: trunk/Tools/ChangeLog (258998 => 258999)


--- trunk/Tools/ChangeLog	2020-03-25 18:11:47 UTC (rev 258998)
+++ trunk/Tools/ChangeLog	2020-03-25 18:24:31 UTC (rev 258999)
@@ -1,5 +1,18 @@
 2020-03-25  Aakash Jain  <aakash_j...@apple.com>
 
+        [ews] commit-queue should comment on bug if it fails to find any modified ChangeLog
+        https://bugs.webkit.org/show_bug.cgi?id=209550
+
+        Reviewed by Jonathan Bedard.
+
+        * BuildSlaveSupport/ews-build/steps.py:
+        (FindModifiedChangeLogs): Set haltOnFailure to false.
+        (FindModifiedChangeLogs.getResultSummary):
+        (FindModifiedChangeLogs.evaluateCommand): Add build steps to comment on bug and set cq- on patch appropriately.
+        * BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.
+
+2020-03-25  Aakash Jain  <aakash_j...@apple.com>
+
         [ews] status-bubble should link to buildbot queue while waiting in queue
         https://bugs.webkit.org/show_bug.cgi?id=209543
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to