[ews-build] Add step to analyze Compile WebKit failures
authoraakash_jain@apple.com <aakash_jain@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 19 Jun 2019 20:49:07 +0000 (20:49 +0000)
committeraakash_jain@apple.com <aakash_jain@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 19 Jun 2019 20:49:07 +0000 (20:49 +0000)
https://bugs.webkit.org/show_bug.cgi?id=199025

Reviewed by Jonathan Bedard.

* BuildSlaveSupport/ews-build/steps.py:
(CompileWebKit.evaluateCommand): Add AnalyzeCompileWebKitResults step.
(CompileWebKitToT): set haltOnFailure to False since we need to run AnalyzeCompileWebKitResults step.
(AnalyzeCompileWebKitResults): Class to analyze compile webkit steps results.
(AnalyzeCompileWebKitResults.start): If ToT fails to build, retry the build, else marked the build as failed. Note that
this step is run only when compile-webkit failed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@246609 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Tools/BuildSlaveSupport/ews-build/steps.py
Tools/ChangeLog

index 18bda56..9f5743d 100644 (file)
@@ -617,7 +617,7 @@ class CompileWebKit(shell.Compile):
     def evaluateCommand(self, cmd):
         if cmd.didFail():
             self.setProperty('patchFailedToBuild', True)
-            self.build.addStepsAfterCurrentStep([UnApplyPatchIfRequired(), CompileWebKitToT()])
+            self.build.addStepsAfterCurrentStep([UnApplyPatchIfRequired(), CompileWebKitToT(), AnalyzeCompileWebKitResults()])
         else:
             self.build.addStepsAfterCurrentStep([ArchiveBuiltProduct(), UploadBuiltProduct(), TransferToS3()])
 
@@ -626,7 +626,7 @@ class CompileWebKit(shell.Compile):
 
 class CompileWebKitToT(CompileWebKit):
     name = 'compile-webkit-tot'
-    haltOnFailure = True
+    haltOnFailure = False
 
     def doStepIf(self, step):
         return self.getProperty('patchFailedToBuild') or self.getProperty('patchFailedAPITests')
@@ -638,6 +638,35 @@ class CompileWebKitToT(CompileWebKit):
         return shell.Compile.evaluateCommand(self, cmd)
 
 
+class AnalyzeCompileWebKitResults(buildstep.BuildStep):
+    name = 'analyze-compile-webkit-results'
+    description = ['analyze-compile-webkit-results']
+    descriptionDone = ['analyze-compile-webkit-results']
+
+    def start(self):
+        compile_webkit_tot_result = self.getStepResult(CompileWebKitToT.name)
+
+        if compile_webkit_tot_result == FAILURE:
+            self.finished(FAILURE)
+            message = 'Unable to build WebKit without patch, retrying build'
+            self.descriptionDone = message
+            self.build.buildFinished([message], RETRY)
+            return defer.succeed(None)
+
+        self.finished(FAILURE)
+        self.build.results = FAILURE
+        message = 'Patch does not build'
+        self.descriptionDone = message
+        self.build.buildFinished([message], FAILURE)
+
+        return defer.succeed(None)
+
+    def getStepResult(self, step_name):
+        for step in self.build.executedSteps:
+            if step.name == step_name:
+                return step.results
+
+
 class CompileJSCOnly(CompileWebKit):
     name = 'build-jsc'
     descriptionDone = ['Compiled JSC']
index 6362a6d..f876061 100644 (file)
@@ -1,5 +1,19 @@
 2019-06-19  Aakash Jain  <aakash_jain@apple.com>
 
+        [ews-build] Add step to analyze Compile WebKit failures
+        https://bugs.webkit.org/show_bug.cgi?id=199025
+
+        Reviewed by Jonathan Bedard.
+
+        * BuildSlaveSupport/ews-build/steps.py:
+        (CompileWebKit.evaluateCommand): Add AnalyzeCompileWebKitResults step.
+        (CompileWebKitToT): set haltOnFailure to False since we need to run AnalyzeCompileWebKitResults step.
+        (AnalyzeCompileWebKitResults): Class to analyze compile webkit steps results.
+        (AnalyzeCompileWebKitResults.start): If ToT fails to build, retry the build, else marked the build as failed. Note that
+        this step is run only when compile-webkit failed.
+
+2019-06-19  Aakash Jain  <aakash_jain@apple.com>
+
         [ews-build] Send email notifications for failures
         https://bugs.webkit.org/show_bug.cgi?id=198919