Title: [265246] trunk/Tools
Revision
265246
Author
aakash_j...@apple.com
Date
2020-08-04 09:44:30 -0700 (Tue, 04 Aug 2020)

Log Message

[ews] Apple Silicon builder should skip non-relevant patches
https://bugs.webkit.org/show_bug.cgi?id=215111

Reviewed by Jonathan Bedard.

* BuildSlaveSupport/ews-build/factories.py:
(BuildFactory.__init__): Added the checkRelevance parameter.
(macOSBuildOnlyFactory.__init__):
* BuildSlaveSupport/ews-build/factories_unittest.py:
(TestBuildFactory.test_macos_build_only_factory): Updated unit-test.
* BuildSlaveSupport/ews-build/steps.py:
(CheckPatchRelevance): Added patch relevance info for Big Sur.
(CheckPatchRelevance._patch_is_relevant):
* BuildSlaveSupport/ews-build/steps_unittest.py:
(TestCheckPatchRelevance.test_relevant_bigsur_builder_patch): Drive-by fix to make the comparision more robust.
(TestCheckPatchRelevance.test_non_relevant_patch_on_various_queues): Made the unit-test generic to cover multiple queues.
(TestCheckPatchRelevance.test_non_relevant_patch): Deleted.

Modified Paths

Diff

Modified: trunk/Tools/BuildSlaveSupport/ews-build/factories.py (265245 => 265246)


--- trunk/Tools/BuildSlaveSupport/ews-build/factories.py	2020-08-04 16:23:40 UTC (rev 265245)
+++ trunk/Tools/BuildSlaveSupport/ews-build/factories.py	2020-08-04 16:44:30 UTC (rev 265246)
@@ -97,8 +97,8 @@
 class BuildFactory(Factory):
     skipUpload = False
 
-    def __init__(self, platform, configuration=None, architectures=None, triggers=None, additionalArguments=None, **kwargs):
-        Factory.__init__(self, platform=platform, configuration=configuration, architectures=architectures, buildOnly=False, triggers=triggers, additionalArguments=additionalArguments)
+    def __init__(self, platform, configuration=None, architectures=None, triggers=None, additionalArguments=None, checkRelevance=False, **kwargs):
+        Factory.__init__(self, platform=platform, configuration=configuration, architectures=architectures, buildOnly=False, triggers=triggers, additionalArguments=additionalArguments, checkRelevance=checkRelevance)
         self.addStep(KillOldProcesses())
         if platform == 'gtk':
             self.addStep(InstallGtkDependencies())
@@ -172,7 +172,10 @@
 class macOSBuildOnlyFactory(BuildFactory):
     skipUpload = True
 
+    def __init__(self, platform, configuration=None, architectures=None, triggers=None, additionalArguments=None, checkRelevance=True, **kwargs):
+        super(macOSBuildOnlyFactory, self).__init__(platform=platform, configuration=configuration, architectures=architectures, triggers=triggers, additionalArguments=additionalArguments, checkRelevance=checkRelevance, **kwargs)
 
+
 class watchOSBuildFactory(BuildFactory):
     skipUpload = True
 

Modified: trunk/Tools/BuildSlaveSupport/ews-build/factories_unittest.py (265245 => 265246)


--- trunk/Tools/BuildSlaveSupport/ews-build/factories_unittest.py	2020-08-04 16:23:40 UTC (rev 265245)
+++ trunk/Tools/BuildSlaveSupport/ews-build/factories_unittest.py	2020-08-04 16:44:30 UTC (rev 265246)
@@ -187,6 +187,7 @@
         factory = factories.macOSBuildOnlyFactory(platform='mac-bigsur', configuration='release', architectures=["arm64"])
         self.assertBuildSteps(factory.steps, [
             _BuildStepFactory(steps.ConfigureBuild, platform='mac-bigsur', configuration='release', architectures=["arm64"], buildOnly=False, triggers=None, remotes=None, additionalArguments=None),
+            _BuildStepFactory(steps.CheckPatchRelevance),
             _BuildStepFactory(steps.ValidatePatch),
             _BuildStepFactory(steps.PrintConfiguration),
             _BuildStepFactory(steps.CheckOutSource),

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


--- trunk/Tools/BuildSlaveSupport/ews-build/steps.py	2020-08-04 16:23:40 UTC (rev 265245)
+++ trunk/Tools/BuildSlaveSupport/ews-build/steps.py	2020-08-04 16:44:30 UTC (rev 265246)
@@ -296,6 +296,10 @@
         'Tools',
     ]
 
+    big_sur_builder_paths = [
+        'Source/',
+        'Tools/',
+    ]
     webkitpy_paths = [
         'Tools/Scripts/webkitpy',
         'Tools/Scripts/libraries',
@@ -303,6 +307,7 @@
 
     group_to_paths_mapping = {
         'bindings': bindings_paths,
+        'bigsur-release-build': big_sur_builder_paths,
         'services-ews': services_paths,
         'jsc': jsc_paths,
         'webkitpy': webkitpy_paths,
@@ -311,7 +316,7 @@
     }
 
     def _patch_is_relevant(self, patch, builderName):
-        group = [group for group in self.group_to_paths_mapping.keys() if group in builderName.lower()]
+        group = [group for group in self.group_to_paths_mapping.keys() if group.lower() in builderName.lower()]
         if not group:
             # This builder doesn't have paths defined, all patches are relevant.
             return True

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


--- trunk/Tools/BuildSlaveSupport/ews-build/steps_unittest.py	2020-08-04 16:23:40 UTC (rev 265245)
+++ trunk/Tools/BuildSlaveSupport/ews-build/steps_unittest.py	2020-08-04 16:44:30 UTC (rev 265246)
@@ -2297,6 +2297,13 @@
         self.expectOutcome(result=SUCCESS, state_string='Patch contains relevant changes')
         return self.runStep()
 
+    def test_relevant_bigsur_builder_patch(self):
+        CheckPatchRelevance._get_patch = lambda x: 'Sample patch; file: Source/xyz'
+        self.setupStep(CheckPatchRelevance())
+        self.setProperty('buildername', 'macOS-BigSur-Release-Build-EWS')
+        self.expectOutcome(result=SUCCESS, state_string='Patch contains relevant changes')
+        return self.runStep()
+
     def test_relevant_windows_wk1_patch(self):
         CheckPatchRelevance._get_patch = lambda x: 'Sample patch; file: Source/WebKitLegacy'
         self.setupStep(CheckPatchRelevance())
@@ -2331,13 +2338,16 @@
             rc = self.runStep()
         return rc
 
-    def test_non_relevant_patch(self):
+    def test_non_relevant_patch_on_various_queues(self):
         CheckPatchRelevance._get_patch = lambda x: 'Sample patch'
-        self.setupStep(CheckPatchRelevance())
-        self.setProperty('buildername', 'JSC-Tests-EWS')
-        self.setProperty('patch_id', '1234')
-        self.expectOutcome(result=FAILURE, state_string='Patch doesn\'t have relevant changes')
-        return self.runStep()
+        queues = ['Bindings-Tests-EWS', 'JSC-Tests-EWS', 'macOS-BigSur-Release-Build-EWS',
+                  'macOS-Mojave-Debug-WK1-Tests-EWS', 'Services-EWS', 'WebKitPy-Tests-EWS']
+        for queue in queues:
+            self.setupStep(CheckPatchRelevance())
+            self.setProperty('buildername', queue)
+            self.expectOutcome(result=FAILURE, state_string='Patch doesn\'t have relevant changes')
+            rc = self.runStep()
+        return rc
 
 
 class TestArchiveBuiltProduct(BuildStepMixinAdditions, unittest.TestCase):

Modified: trunk/Tools/ChangeLog (265245 => 265246)


--- trunk/Tools/ChangeLog	2020-08-04 16:23:40 UTC (rev 265245)
+++ trunk/Tools/ChangeLog	2020-08-04 16:44:30 UTC (rev 265246)
@@ -1,3 +1,23 @@
+2020-08-04  Aakash Jain  <aakash_j...@apple.com>
+
+        [ews] Apple Silicon builder should skip non-relevant patches
+        https://bugs.webkit.org/show_bug.cgi?id=215111
+
+        Reviewed by Jonathan Bedard.
+
+        * BuildSlaveSupport/ews-build/factories.py:
+        (BuildFactory.__init__): Added the checkRelevance parameter.
+        (macOSBuildOnlyFactory.__init__):
+        * BuildSlaveSupport/ews-build/factories_unittest.py:
+        (TestBuildFactory.test_macos_build_only_factory): Updated unit-test.
+        * BuildSlaveSupport/ews-build/steps.py:
+        (CheckPatchRelevance): Added patch relevance info for Big Sur.
+        (CheckPatchRelevance._patch_is_relevant):
+        * BuildSlaveSupport/ews-build/steps_unittest.py:
+        (TestCheckPatchRelevance.test_relevant_bigsur_builder_patch): Drive-by fix to make the comparision more robust.
+        (TestCheckPatchRelevance.test_non_relevant_patch_on_various_queues): Made the unit-test generic to cover multiple queues.
+        (TestCheckPatchRelevance.test_non_relevant_patch): Deleted.
+
 2020-08-03  Wenson Hsieh  <wenson_hs...@apple.com>
 
         Allow -accessoryDone to blur the focused element on iPad when AutoFilling strong passwords
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to