Title: [254870] trunk/Tools
Revision
254870
Author
[email protected]
Date
2020-01-21 12:05:49 -0800 (Tue, 21 Jan 2020)

Log Message

[ews] commit-queue should check cq+ flag
https://bugs.webkit.org/show_bug.cgi?id=206530

Reviewed by Jonathan Bedard.

* BuildSlaveSupport/ews-build/steps.py:
ValidatePatch._is_patch_cq_plus): Method to check cq+ flag on patch.
(ValidatePatch.start):
* BuildSlaveSupport/ews-build/factories.py:
* BuildSlaveSupport/ews-build/factories_unittest.py: Updated unit-tests.

Modified Paths

Diff

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


--- trunk/Tools/BuildSlaveSupport/ews-build/factories.py	2020-01-21 19:48:05 UTC (rev 254869)
+++ trunk/Tools/BuildSlaveSupport/ews-build/factories.py	2020-01-21 20:05:49 UTC (rev 254870)
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2019 Apple Inc. All rights reserved.
+# Copyright (C) 2018-2020 Apple Inc. All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions
@@ -33,12 +33,12 @@
 
 
 class Factory(factory.BuildFactory):
-    def __init__(self, platform, configuration=None, architectures=None, buildOnly=True, triggers=None, remotes=None, additionalArguments=None, checkRelevance=False, **kwargs):
+    def __init__(self, platform, configuration=None, architectures=None, buildOnly=True, triggers=None, remotes=None, additionalArguments=None, checkRelevance=False, verifycqplus=False, **kwargs):
         factory.BuildFactory.__init__(self)
         self.addStep(ConfigureBuild(platform=platform, configuration=configuration, architectures=architectures, buildOnly=buildOnly, triggers=triggers, remotes=remotes, additionalArguments=additionalArguments))
         if checkRelevance:
             self.addStep(CheckPatchRelevance())
-        self.addStep(ValidatePatch())
+        self.addStep(ValidatePatch(verifycqplus=verifycqplus))
         self.addStep(PrintConfiguration())
         self.addStep(CheckOutSource())
         # CheckOutSource step pulls the latest revision, since we use alwaysUseLatest=True. Without alwaysUseLatest Buildbot will
@@ -191,9 +191,9 @@
 
 class CommitQueueFactory(Factory):
     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)
+        Factory.__init__(self, platform=platform, configuration=configuration, architectures=architectures, buildOnly=False, triggers=triggers, additionalArguments=additionalArguments, verifycqplus=True)
         self.addStep(KillOldProcesses())
         self.addStep(CompileWebKit(skipUpload=True))
         self.addStep(KillOldProcesses())
-        self.addStep(ValidatePatch(addURLs=False))
+        self.addStep(ValidatePatch(addURLs=False, verifycqplus=True))
         self.addStep(RunWebKit1Tests())

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


--- trunk/Tools/BuildSlaveSupport/ews-build/factories_unittest.py	2020-01-21 19:48:05 UTC (rev 254869)
+++ trunk/Tools/BuildSlaveSupport/ews-build/factories_unittest.py	2020-01-21 20:05:49 UTC (rev 254870)
@@ -51,7 +51,7 @@
         factory = factories.Factory(platform='ios-simulator-13', configuration='release', architectures='arm64')
         self.assertBuildSteps(factory.steps, [
             _BuildStepFactory(steps.ConfigureBuild, platform='ios-simulator-13', configuration='release', architectures='arm64', buildOnly=True, triggers=None, remotes=None, additionalArguments=None),
-            _BuildStepFactory(steps.ValidatePatch),
+            _BuildStepFactory(steps.ValidatePatch, verifycqplus=False),
             _BuildStepFactory(steps.PrintConfiguration),
             _BuildStepFactory(steps.CheckOutSource),
             _BuildStepFactory(steps.CheckOutSpecificRevision),
@@ -63,7 +63,7 @@
         self.assertBuildSteps(factory.steps, [
             _BuildStepFactory(steps.ConfigureBuild, platform='ios-simulator-13', configuration='release', architectures='arm64', buildOnly=True, triggers=None, remotes=None, additionalArguments=None),
             _BuildStepFactory(steps.CheckPatchRelevance),
-            _BuildStepFactory(steps.ValidatePatch),
+            _BuildStepFactory(steps.ValidatePatch, verifycqplus=False),
             _BuildStepFactory(steps.PrintConfiguration),
             _BuildStepFactory(steps.CheckOutSource),
             _BuildStepFactory(steps.CheckOutSpecificRevision),
@@ -104,7 +104,7 @@
         self.assertBuildSteps(factory.steps, [
             _BuildStepFactory(steps.ConfigureBuild, platform='*', configuration=None, architectures=None, buildOnly=False, triggers=None, remotes=None, additionalArguments=None),
             _BuildStepFactory(steps.CheckPatchRelevance),
-            _BuildStepFactory(steps.ValidatePatch),
+            _BuildStepFactory(steps.ValidatePatch, verifycqplus=False),
             _BuildStepFactory(steps.PrintConfiguration),
             _BuildStepFactory(steps.CheckOutSource),
             _BuildStepFactory(steps.CheckOutSpecificRevision),
@@ -116,7 +116,7 @@
         factory = factories.WebKitPerlFactory(platform='*', configuration=None, architectures=None)
         self.assertBuildSteps(factory.steps, [
             _BuildStepFactory(steps.ConfigureBuild, platform='*', configuration=None, architectures=None, buildOnly=False, triggers=None, remotes=None, additionalArguments=None),
-            _BuildStepFactory(steps.ValidatePatch),
+            _BuildStepFactory(steps.ValidatePatch, verifycqplus=False),
             _BuildStepFactory(steps.PrintConfiguration),
             _BuildStepFactory(steps.CheckOutSource),
             _BuildStepFactory(steps.CheckOutSpecificRevision),
@@ -129,7 +129,7 @@
         self.assertBuildSteps(factory.steps, [
             _BuildStepFactory(steps.ConfigureBuild, platform='*', configuration=None, architectures=None, buildOnly=False, triggers=None, remotes=None, additionalArguments=None),
             _BuildStepFactory(steps.CheckPatchRelevance),
-            _BuildStepFactory(steps.ValidatePatch),
+            _BuildStepFactory(steps.ValidatePatch, verifycqplus=False),
             _BuildStepFactory(steps.PrintConfiguration),
             _BuildStepFactory(steps.CheckOutSource),
             _BuildStepFactory(steps.CheckOutSpecificRevision),
@@ -143,7 +143,7 @@
         self.assertBuildSteps(factory.steps, [
             _BuildStepFactory(steps.ConfigureBuild, platform='*', configuration=None, architectures=None, buildOnly=False, triggers=None, remotes=None, additionalArguments=None),
             _BuildStepFactory(steps.CheckPatchRelevance),
-            _BuildStepFactory(steps.ValidatePatch),
+            _BuildStepFactory(steps.ValidatePatch, verifycqplus=False),
             _BuildStepFactory(steps.PrintConfiguration),
             _BuildStepFactory(steps.CheckOutSource),
             _BuildStepFactory(steps.CheckOutSpecificRevision),

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


--- trunk/Tools/BuildSlaveSupport/ews-build/steps.py	2020-01-21 19:48:05 UTC (rev 254869)
+++ trunk/Tools/BuildSlaveSupport/ews-build/steps.py	2020-01-21 20:05:49 UTC (rev 254870)
@@ -1,4 +1,4 @@
-# Copyright (C) 2018-2019 Apple Inc. All rights reserved.
+# Copyright (C) 2018-2020 Apple Inc. All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions
@@ -329,10 +329,11 @@
     bug_open_statuses = ['UNCONFIRMED', 'NEW', 'ASSIGNED', 'REOPENED']
     bug_closed_statuses = ['RESOLVED', 'VERIFIED', 'CLOSED']
 
-    def __init__(self, verifyObsolete=True, verifyBugClosed=True, verifyReviewDenied=True, addURLs=True, **kwargs):
+    def __init__(self, verifyObsolete=True, verifyBugClosed=True, verifyReviewDenied=True, addURLs=True, verifycqplus=False):
         self.verifyObsolete = verifyObsolete
         self.verifyBugClosed = verifyBugClosed
         self.verifyReviewDenied = verifyReviewDenied
+        self.verifycqplus = verifycqplus
         self.addURLs = addURLs
         buildstep.BuildStep.__init__(self)
 
@@ -412,6 +413,17 @@
                 return 1
         return 0
 
+    def _is_patch_cq_plus(self, patch_id):
+        patch_json = self.get_patch_json(patch_id)
+        if not patch_json:
+            self._addToLog('stdio', 'Unable to fetch patch {}.\n'.format(patch_id))
+            return -1
+
+        for flag in patch_json.get('flags', []):
+            if flag.get('name') == 'commit-queue' and flag.get('status') == '+':
+                return 1
+        return 0
+
     def _is_bug_closed(self, bug_id):
         if not bug_id:
             self._addToLog('stdio', 'Skipping bug status validation since bug id is None.\n')
@@ -466,6 +478,11 @@
             self.skip_build('Patch {} is marked r-'.format(patch_id))
             return None
 
+        cq_plus = self._is_patch_cq_plus(patch_id) if self.verifycqplus else 1
+        if cq_plus != 1:
+            self.skip_build('Patch {} is not marked cq+.'.format(patch_id))
+            return None
+
         if obsolete == -1 or review_denied == -1 or bug_closed == -1:
             self.finished(WARNINGS)
             self.setProperty('validated', False)
@@ -477,6 +494,8 @@
             self._addToLog('stdio', 'Patch is not obsolete.\n')
         if self.verifyReviewDenied:
             self._addToLog('stdio', 'Patch is not marked r-.\n')
+        if self.verifycqplus:
+            self._addToLog('stdio', 'Patch is marked cq+.\n')
         self.finished(SUCCESS)
         return None
 

Modified: trunk/Tools/ChangeLog (254869 => 254870)


--- trunk/Tools/ChangeLog	2020-01-21 19:48:05 UTC (rev 254869)
+++ trunk/Tools/ChangeLog	2020-01-21 20:05:49 UTC (rev 254870)
@@ -1,3 +1,16 @@
+2020-01-21  Aakash Jain  <[email protected]>
+
+        [ews] commit-queue should check cq+ flag
+        https://bugs.webkit.org/show_bug.cgi?id=206530
+
+        Reviewed by Jonathan Bedard.
+
+        * BuildSlaveSupport/ews-build/steps.py:
+        ValidatePatch._is_patch_cq_plus): Method to check cq+ flag on patch.
+        (ValidatePatch.start):
+        * BuildSlaveSupport/ews-build/factories.py:
+        * BuildSlaveSupport/ews-build/factories_unittest.py: Updated unit-tests.
+
 2020-01-21  Keith Rollin  <[email protected]>
 
         Fix tvOS values in SUPPORTED_PLATFORMS
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to