[ews] commit queue should skip building and testing for rollout patches
https://bugs.webkit.org/show_bug.cgi?id=208329
Reviewed by Jonathan Bedard.
* BuildSlaveSupport/ews-build/steps.py:
(BugzillaMixin._is_patch_obsolete): Set rollout property appropriately.
(CompileWebKit.doStepIf): Skip tests for rollout patches on commit-queue.
(RunWebKit1Tests.doStepIf): Ditto.
* BuildSlaveSupport/ews-build/steps_unittest.py:
(TestCompileWebKit.test_skip_for_rollout_patches_on_commit_queue): Added unit-test.
(TestRunWebKit1Tests.test_skip_for_rollout_patches_on_commit_queue): Ditto.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@257636 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Tools/BuildSlaveSupport/ews-build/steps.py b/Tools/BuildSlaveSupport/ews-build/steps.py
index b431b45..f688495 100644
--- a/Tools/BuildSlaveSupport/ews-build/steps.py
+++ b/Tools/BuildSlaveSupport/ews-build/steps.py
@@ -325,6 +325,7 @@
addURLs = False
bug_open_statuses = ['UNCONFIRMED', 'NEW', 'ASSIGNED', 'REOPENED']
bug_closed_statuses = ['RESOLVED', 'VERIFIED', 'CLOSED']
+ rollout_preamble = 'ROLLOUT of r'
@defer.inlineCallbacks
def _addToLog(self, logName, message):
@@ -388,6 +389,9 @@
patch_author = patch_json.get('creator')
self.setProperty('patch_author', patch_author)
+ patch_title = patch_json.get('summary')
+ if patch_title.startswith(self.rollout_preamble):
+ self.setProperty('rollout', True)
if self.addURLs:
self.addURL('Patch by: {}'.format(patch_author), '')
return patch_json.get('is_obsolete')
@@ -1201,6 +1205,9 @@
self.skipUpload = skipUpload
super(CompileWebKit, self).__init__(logEnviron=False, **kwargs)
+ def doStepIf(self, step):
+ return not (self.getProperty('rollout') and self.getProperty('buildername', '').lower() == 'commit-queue')
+
def start(self):
platform = self.getProperty('platform')
buildOnly = self.getProperty('buildOnly')
@@ -1585,6 +1592,7 @@
def __init__(self, **kwargs):
shell.Test.__init__(self, logEnviron=False, **kwargs)
+ self.incorrectLayoutLines = []
def start(self):
self.log_observer = logobserver.BufferLogObserver(wantStderr=True)
@@ -1592,7 +1600,6 @@
self.log_observer_json = logobserver.BufferLogObserver()
self.addLogObserver('json', self.log_observer_json)
- self.incorrectLayoutLines = []
platform = self.getProperty('platform')
appendCustomBuildFlags(self, platform, self.getProperty('fullPlatform'))
additionalArguments = self.getProperty('additionalArguments')
@@ -1892,6 +1899,9 @@
self.setProperty('use-dump-render-tree', True)
return RunWebKitTests.start(self)
+ def doStepIf(self, step):
+ return not (self.getProperty('rollout') and self.getProperty('buildername', '').lower() == 'commit-queue')
+
class ArchiveBuiltProduct(shell.ShellCommand):
command = ['python', 'Tools/BuildSlaveSupport/built-product-archive',
diff --git a/Tools/BuildSlaveSupport/ews-build/steps_unittest.py b/Tools/BuildSlaveSupport/ews-build/steps_unittest.py
index 5387340..e4681bf 100644
--- a/Tools/BuildSlaveSupport/ews-build/steps_unittest.py
+++ b/Tools/BuildSlaveSupport/ews-build/steps_unittest.py
@@ -984,6 +984,14 @@
self.expectOutcome(result=FAILURE, state_string='Failed to compile WebKit')
return self.runStep()
+ def test_skip_for_rollout_patches_on_commit_queue(self):
+ self.setupStep(CompileWebKit())
+ self.setProperty('buildername', 'Commit-Queue')
+ self.setProperty('configuration', 'debug')
+ self.setProperty('rollout', True)
+ self.expectOutcome(result=SKIPPED, state_string='Compiled WebKit (skipped)')
+ return self.runStep()
+
class TestCompileWebKitToT(BuildStepMixinAdditions, unittest.TestCase):
def setUp(self):
@@ -1739,6 +1747,15 @@
self.expectOutcome(result=FAILURE, state_string='layout-tests (failure)')
return self.runStep()
+ def test_skip_for_rollout_patches_on_commit_queue(self):
+ self.setupStep(RunWebKit1Tests())
+ self.setProperty('buildername', 'Commit-Queue')
+ self.setProperty('fullPlatform', 'mac')
+ self.setProperty('configuration', 'debug')
+ self.setProperty('rollout', True)
+ self.expectOutcome(result=SKIPPED, state_string='layout-tests (skipped)')
+ return self.runStep()
+
class TestAnalyzeLayoutTestsResults(BuildStepMixinAdditions, unittest.TestCase):
def setUp(self):
diff --git a/Tools/ChangeLog b/Tools/ChangeLog
index 9aea2f4..f12aa6b 100644
--- a/Tools/ChangeLog
+++ b/Tools/ChangeLog
@@ -1,3 +1,18 @@
+2020-02-28 Aakash Jain <aakash_jain@apple.com>
+
+ [ews] commit queue should skip building and testing for rollout patches
+ https://bugs.webkit.org/show_bug.cgi?id=208329
+
+ Reviewed by Jonathan Bedard.
+
+ * BuildSlaveSupport/ews-build/steps.py:
+ (BugzillaMixin._is_patch_obsolete): Set rollout property appropriately.
+ (CompileWebKit.doStepIf): Skip tests for rollout patches on commit-queue.
+ (RunWebKit1Tests.doStepIf): Ditto.
+ * BuildSlaveSupport/ews-build/steps_unittest.py:
+ (TestCompileWebKit.test_skip_for_rollout_patches_on_commit_queue): Added unit-test.
+ (TestRunWebKit1Tests.test_skip_for_rollout_patches_on_commit_queue): Ditto.
+
2020-02-28 Daniel Bates <dabates@apple.com>
Update my watch list preferences and contributor's entry.