Title: [268749] trunk/Tools
Revision
268749
Author
[email protected]
Date
2020-10-20 10:53:55 -0700 (Tue, 20 Oct 2020)

Log Message

[build.webkit.org] Use builder tags instead of category for latest buildbot
https://bugs.webkit.org/show_bug.cgi?id=217958

Reviewed by Jonathan Bedard.

* BuildSlaveSupport/build.webkit.org-config/loadConfig.py:
(loadBuilderConfig):
(PlatformSpecificScheduler.filter):
(getInvalidTags):
(getValidTags):
(getTagsForBuilder):
* BuildSlaveSupport/build.webkit.org-config/loadConfig_unittest.py: Added unit-tests, copied from EWS code.
(TagsForBuilderTest):
(TagsForBuilderTest.verifyTags):
(TagsForBuilderTest.test_getTagsForBuilder):
(TagsForBuilderTest.test_tags_type):
(TagsForBuilderTest.test_getInvalidTags):

Modified Paths

Diff

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/loadConfig.py (268748 => 268749)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/loadConfig.py	2020-10-20 17:48:26 UTC (rev 268748)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/loadConfig.py	2020-10-20 17:53:55 UTC (rev 268749)
@@ -157,7 +157,9 @@
         if (category in ('AppleMac', 'AppleWin', 'iOS')) and factoryName != 'BuildFactory':
             builder['nextBuild'] = pickLatestBuild
 
-        if not USE_BUILDBOT_VERSION2:
+        if USE_BUILDBOT_VERSION2:
+            builder['tags'] = getTagsForBuilder(builder)
+        else:
             builder['category'] = category
         c['builders'].append(builder)
 
@@ -170,3 +172,23 @@
 
     def filter(self, change):
         return wkbuild.should_build(self.platform, change.files)
+
+
+def getInvalidTags():
+    """
+    We maintain a list of words which we do not want to display as tag in buildbot.
+    We generate a list of tags by splitting the builder name. We do not want certain words as tag.
+    For e.g. we don't want '11'as tag for builder iOS-11-Simulator-EWS
+    """
+    invalid_tags = [str(i) for i in xrange(0, 20)]
+    invalid_tags.extend(['EWS', 'TryBot'])
+    return invalid_tags
+
+
+def getValidTags(tags):
+    return list(set(tags) - set(getInvalidTags()))
+
+
+def getTagsForBuilder(builder):
+    keywords = filter(None, re.split('[, \-_:()]+', str(builder['name'])))
+    return getValidTags(keywords)

Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/loadConfig_unittest.py (268748 => 268749)


--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/loadConfig_unittest.py	2020-10-20 17:48:26 UTC (rev 268748)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/loadConfig_unittest.py	2020-10-20 17:53:55 UTC (rev 268749)
@@ -27,7 +27,9 @@
 import os
 import unittest
 
+import loadConfig
 
+
 class ConfigDotJSONTest(unittest.TestCase):
     def get_config(self):
         cwd = os.path.dirname(os.path.abspath(__file__))
@@ -65,5 +67,36 @@
                 self.assertTrue(len(scheduler.get('builderNames')) == 1, 'scheduler "{}" triggers multiple builders.'.format(scheduler['name']))
 
 
+class TagsForBuilderTest(unittest.TestCase):
+    def verifyTags(self, builderName, expectedTags):
+        tags = loadConfig.getTagsForBuilder({'name': builderName})
+        self.assertEqual(sorted(tags), sorted(expectedTags))
+
+    def test_getTagsForBuilder(self):
+        self.verifyTags('EWS', [])
+        self.verifyTags('TryBot-10-EWS', [])
+        self.verifyTags('11-EWS', [])
+        self.verifyTags('32-EWS', ['32'])
+        self.verifyTags('iOS-11-EWS', ['iOS'])
+        self.verifyTags('iOS(11),(test)-EWS', ['iOS', 'test'])
+        self.verifyTags('Windows-EWS', ['Windows'])
+        self.verifyTags('Windows_Windows', ['Windows'])
+        self.verifyTags('GTK-Build-EWS', ['GTK', 'Build'])
+        self.verifyTags('GTK-WK2-Tests-EWS', ['GTK', 'WK2', 'Tests'])
+        self.verifyTags('macOS-Sierra-Release-WK1-EWS', ['Sierra', 'Release', 'macOS', 'WK1'])
+        self.verifyTags('macOS-High-Sierra-Release-32bit-WK2-EWS', ['macOS', 'High', 'Sierra', 'Release', 'WK2', '32bit'])
+
+    def test_tags_type(self):
+        tags = loadConfig.getTagsForBuilder({'name': u'iOS-11-EWS'})
+        self.assertEqual(tags, ['iOS'])
+        self.assertEqual(type(tags[0]), str)
+
+    def test_getInvalidTags(self):
+        invalidTags = loadConfig.getInvalidTags()
+        expectedTags = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10',
+                        '11', '12', '13', '14', '15', '16', '17', '18', '19', 'EWS', 'TryBot']
+        self.assertEqual(invalidTags, expectedTags)
+
+
 if __name__ == '__main__':
     unittest.main()

Modified: trunk/Tools/ChangeLog (268748 => 268749)


--- trunk/Tools/ChangeLog	2020-10-20 17:48:26 UTC (rev 268748)
+++ trunk/Tools/ChangeLog	2020-10-20 17:53:55 UTC (rev 268749)
@@ -1,3 +1,23 @@
+2020-10-20  Aakash Jain  <[email protected]>
+
+        [build.webkit.org] Use builder tags instead of category for latest buildbot
+        https://bugs.webkit.org/show_bug.cgi?id=217958
+
+        Reviewed by Jonathan Bedard.
+
+        * BuildSlaveSupport/build.webkit.org-config/loadConfig.py:
+        (loadBuilderConfig):
+        (PlatformSpecificScheduler.filter):
+        (getInvalidTags):
+        (getValidTags):
+        (getTagsForBuilder):
+        * BuildSlaveSupport/build.webkit.org-config/loadConfig_unittest.py: Added unit-tests, copied from EWS code.
+        (TagsForBuilderTest):
+        (TagsForBuilderTest.verifyTags):
+        (TagsForBuilderTest.test_getTagsForBuilder):
+        (TagsForBuilderTest.test_tags_type):
+        (TagsForBuilderTest.test_getInvalidTags):
+
 2020-10-20  Michael Catanzaro  <[email protected]>
 
         TestOptionsGeneratedKeys.h:30:52: warning: backslash-newline at end of file
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to