Title: [258946] trunk/Tools
Revision
258946
Author
[email protected]
Date
2020-03-24 15:26:45 -0700 (Tue, 24 Mar 2020)

Log Message

[ews] commit-queue should comment on bug if it fails to create git commit
https://bugs.webkit.org/show_bug.cgi?id=209487

Reviewed by Jonathan Bedard.

* BuildSlaveSupport/ews-build/steps.py:
(CreateLocalGITCommit):
(CreateLocalGITCommit.start):
(CreateLocalGITCommit.evaluateCommand):
* BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.

Modified Paths

Diff

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


--- trunk/Tools/BuildSlaveSupport/ews-build/steps.py	2020-03-24 22:08:58 UTC (rev 258945)
+++ trunk/Tools/BuildSlaveSupport/ews-build/steps.py	2020-03-24 22:26:45 UTC (rev 258946)
@@ -2507,7 +2507,7 @@
 class CreateLocalGITCommit(shell.ShellCommand):
     name = 'create-local-git-commit'
     descriptionDone = ['Created local git commit']
-    haltOnFailure = True
+    haltOnFailure = False
 
     def __init__(self, **kwargs):
         shell.ShellCommand.__init__(self, timeout=5 * 60, logEnviron=False, **kwargs)
@@ -2515,8 +2515,9 @@
     def start(self):
         self.failure_message = None
         modified_changelogs = self.getProperty('modified_changelogs')
+        patch_id = self.getProperty('patch_id', '')
         if not modified_changelogs:
-            self.failure_message = u'No modified ChangeLog file found'
+            self.failure_message = u'No modified ChangeLog file found for Patch {}'.format(patch_id)
             self.finished(FAILURE)
             return None
 
@@ -2532,7 +2533,20 @@
             return {u'step': u'Failed to create git commit'}
         return shell.ShellCommand.getResultSummary(self)
 
+    def evaluateCommand(self, cmd):
+        rc = shell.ShellCommand.evaluateCommand(self, cmd)
+        if rc == FAILURE:
+            patch_id = self.getProperty('patch_id', '')
+            message = self.failure_message or 'Failed to create git commit for 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
 
+
 class PushCommitToWebKitRepo(shell.ShellCommand):
     name = 'push-commit-to-webkit-repo'
     descriptionDone = ['Pushed commit to WebKit repository']

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


--- trunk/Tools/BuildSlaveSupport/ews-build/steps_unittest.py	2020-03-24 22:08:58 UTC (rev 258945)
+++ trunk/Tools/BuildSlaveSupport/ews-build/steps_unittest.py	2020-03-24 22:26:45 UTC (rev 258946)
@@ -3205,6 +3205,8 @@
 
     def test_success(self):
         self.setupStep(CreateLocalGITCommit())
+        self.assertEqual(CreateLocalGITCommit.haltOnFailure, False)
+        self.setProperty('buildername', 'Commit-Queue')
         self.setProperty('modified_changelogs', ['Tools/Scripts/ChangeLog', 'Source/WebCore/ChangeLog'])
         self.expectRemoteCommands(
             ExpectShell(workdir='wkdir',
@@ -3214,15 +3216,21 @@
             0,
         )
         self.expectOutcome(result=SUCCESS, state_string='Created local git commit')
-        return self.runStep()
+        rc = self.runStep()
+        self.assertEqual(self.getProperty('bugzilla_comment_text'), None)
+        self.assertEqual(self.getProperty('build_finish_summary'), None)
+        return rc
 
     def test_failure_no_changelog(self):
         self.setupStep(CreateLocalGITCommit())
-        self.expectOutcome(result=FAILURE, state_string='No modified ChangeLog file found')
+        self.setProperty('patch_id', '1234')
+        self.expectOutcome(result=FAILURE, state_string='No modified ChangeLog file found for Patch 1234')
         return self.runStep()
 
     def test_failure(self):
         self.setupStep(CreateLocalGITCommit())
+        self.setProperty('patch_id', '1234')
+        self.setProperty('buildername', 'Commit-Queue')
         self.setProperty('modified_changelogs', ['Tools/Scripts/ChangeLog'])
         self.expectRemoteCommands(
             ExpectShell(workdir='wkdir',
@@ -3233,7 +3241,10 @@
             2,
         )
         self.expectOutcome(result=FAILURE, state_string='Failed to create git commit')
-        return self.runStep()
+        rc = self.runStep()
+        self.assertEqual(self.getProperty('bugzilla_comment_text'), 'Failed to create git commit for Attachment 1234')
+        self.assertEqual(self.getProperty('build_finish_summary'), 'Failed to create git commit for Patch 1234')
+        return rc
 
 
 class TestValidateCommiterAndReviewer(BuildStepMixinAdditions, unittest.TestCase):

Modified: trunk/Tools/ChangeLog (258945 => 258946)


--- trunk/Tools/ChangeLog	2020-03-24 22:08:58 UTC (rev 258945)
+++ trunk/Tools/ChangeLog	2020-03-24 22:26:45 UTC (rev 258946)
@@ -1,3 +1,16 @@
+2020-03-24  Aakash Jain  <[email protected]>
+
+        [ews] commit-queue should comment on bug if it fails to create git commit
+        https://bugs.webkit.org/show_bug.cgi?id=209487
+
+        Reviewed by Jonathan Bedard.
+
+        * BuildSlaveSupport/ews-build/steps.py:
+        (CreateLocalGITCommit):
+        (CreateLocalGITCommit.start):
+        (CreateLocalGITCommit.evaluateCommand):
+        * BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.
+
 2020-03-24  Daniel Bates  <[email protected]>
 
         Element context character rects may be in wrong coordinate system
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to