Title: [273000] trunk/Tools
Revision
273000
Author
aakash_j...@apple.com
Date
2021-02-17 08:23:18 -0800 (Wed, 17 Feb 2021)

Log Message

commit-queue should retry when it fails to commit
https://bugs.webkit.org/show_bug.cgi?id=222038

Reviewed by Jonathan Bedard.

* CISupport/ews-build/steps.py:
(PushCommitToWebKitRepo):
(PushCommitToWebKitRepo.evaluateCommand):
* CISupport/ews-build/steps_unittest.py:

Modified Paths

Diff

Modified: trunk/Tools/CISupport/ews-build/steps.py (272999 => 273000)


--- trunk/Tools/CISupport/ews-build/steps.py	2021-02-17 16:16:20 UTC (rev 272999)
+++ trunk/Tools/CISupport/ews-build/steps.py	2021-02-17 16:23:18 UTC (rev 273000)
@@ -3076,6 +3076,7 @@
     command = ['git', 'svn', 'dcommit', '--rmdir']
     commit_success_regexp = '^Committed r(?P<svn_revision>\d+)$'
     haltOnFailure = False
+    MAX_RETRY = 2
 
     def __init__(self, **kwargs):
         shell.ShellCommand.__init__(self, timeout=5 * 60, logEnviron=False, **kwargs)
@@ -3097,6 +3098,12 @@
             self.build.addStepsAfterCurrentStep([CommentOnBug(), RemoveFlagsOnPatch(), CloseBug()])
             self.addURL('r{}'.format(svn_revision), self.url_for_revision(svn_revision))
         else:
+            retry_count = int(self.getProperty('retry_count', 0))
+            if retry_count < self.MAX_RETRY:
+                self.setProperty('retry_count', retry_count + 1)
+                self.build.addStepsAfterCurrentStep([CheckOutSource(), ShowIdentifier(), UpdateWorkingDirectory(), ApplyPatch(), CreateLocalGITCommit(), PushCommitToWebKitRepo()])
+                return rc
+
             self.setProperty('bugzilla_comment_text', self.comment_text_for_bug())
             self.setProperty('build_finish_summary', 'Failed to commit to WebKit repository')
             self.build.addStepsAfterCurrentStep([CommentOnBug(), SetCommitQueueMinusFlagOnPatch()])

Modified: trunk/Tools/CISupport/ews-build/steps_unittest.py (272999 => 273000)


--- trunk/Tools/CISupport/ews-build/steps_unittest.py	2021-02-17 16:16:20 UTC (rev 272999)
+++ trunk/Tools/CISupport/ews-build/steps_unittest.py	2021-02-17 16:23:18 UTC (rev 273000)
@@ -3780,8 +3780,27 @@
         self.assertEqual(self.getProperty('build_finish_summary'), None)
         return rc
 
+    def test_failure_retry(self):
+        self.setupStep(PushCommitToWebKitRepo())
+        self.setProperty('patch_id', '2345')
+        self.expectRemoteCommands(
+            ExpectShell(workdir='wkdir',
+                        timeout=300,
+                        logEnviron=False,
+                        command=['git', 'svn', 'dcommit', '--rmdir']) +
+            ExpectShell.log('stdio', stdout='Unexpected failure') +
+            2,
+        )
+        self.expectOutcome(result=FAILURE, state_string='Failed to push commit to Webkit repository')
+        rc = self.runStep()
+        self.assertEqual(self.getProperty('retry_count'), 1)
+        self.assertEqual(self.getProperty('build_finish_summary'), None)
+        self.assertEqual(self.getProperty('bugzilla_comment_text'), None)
+        return rc
+
     def test_failure(self):
         self.setupStep(PushCommitToWebKitRepo())
+        self.setProperty('retry_count', PushCommitToWebKitRepo.MAX_RETRY)
         self.setProperty('patch_id', '2345')
         self.expectRemoteCommands(
             ExpectShell(workdir='wkdir',

Modified: trunk/Tools/ChangeLog (272999 => 273000)


--- trunk/Tools/ChangeLog	2021-02-17 16:16:20 UTC (rev 272999)
+++ trunk/Tools/ChangeLog	2021-02-17 16:23:18 UTC (rev 273000)
@@ -1,3 +1,15 @@
+2021-02-17  Aakash Jain  <aakash_j...@apple.com>
+
+        commit-queue should retry when it fails to commit
+        https://bugs.webkit.org/show_bug.cgi?id=222038
+
+        Reviewed by Jonathan Bedard.
+
+        * CISupport/ews-build/steps.py:
+        (PushCommitToWebKitRepo):
+        (PushCommitToWebKitRepo.evaluateCommand):
+        * CISupport/ews-build/steps_unittest.py:
+
 2021-02-17  Wenson Hsieh  <wenson_hs...@apple.com>
 
         [macOS] Introduce a new context menu item to preview images
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to