https://bugs.webkit.org/show_bug.cgi?id=136317
authorap@apple.com <ap@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 27 Aug 2014 22:35:18 +0000 (22:35 +0000)
committerap@apple.com <ap@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 27 Aug 2014 22:35:18 +0000 (22:35 +0000)
Dashboard metrics page sometimes shows 0 for best time

Reviewed by Tim Horton.

This also affects regular dashboard display in a good way - iterations that failed
due to infrastructure misbehavior will more reliably show up as yellow and not red.

* BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
(BuildbotIteration): Added a list of steps that we actually care about. It will need to be
updated if we rename steps.
(BuildbotIteration.prototype.get productive): Now that computation is more involved,
do it once.
(BuildbotIteration.prototype._parseData): Tweak computation of "productive" - builds
that failed e.g. at downloading built archive step are not productive.

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

Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js
Tools/ChangeLog

index 30dee5e..a52b712 100644 (file)
@@ -41,6 +41,7 @@ BuildbotIteration = function(queue, dataOrID, finished)
 
     this.loaded = false;
     this.isLoading = false;
+    this._productive = false;
 
     this.openSourceRevision = null;
     this.internalRevision = null;
@@ -66,6 +67,20 @@ BuildbotIteration.SKIPPED = 3;
 BuildbotIteration.EXCEPTION = 4;
 BuildbotIteration.RETRY = 5;
 
+// If none of these steps ran, then we didn't get any real results, and the iteration was not productive.
+BuildbotIteration.ProductiveSteps = {
+    "compile-webkit": 1,
+    "build archive": 1,
+    "Build" : 1,
+    "layout-test": 1,
+    "jscore-test": 1,
+    "run-api-tests": 1,
+    "API tests": 1,
+    "webkitpy-test": 1,
+    "webkitperl-test": 1,
+    "bindings-generation-tests": 1,
+};
+
 BuildbotIteration.Event = {
     Updated: "updated",
     UnauthorizedAccess: "unauthorized-access"
@@ -106,7 +121,7 @@ BuildbotIteration.prototype = {
 
     get productive()
     {
-        return this.loaded && this._finished && this._result !== BuildbotIteration.EXCEPTION && this._result !== BuildbotIteration.RETRY;
+        return this._productive;
     },
 
     // It is not a real failure if Buildbot itself failed with codes like EXCEPTION or RETRY.
@@ -172,7 +187,7 @@ BuildbotIteration.prototype = {
             var testResults = {};
 
             if (!testStep.isFinished) {
-                // The step never even ran, or hasn't finish running.
+                // The step never even ran, or hasn't finished running.
                 testResults.finished = false;
                 return testResults;
             }
@@ -275,6 +290,21 @@ BuildbotIteration.prototype = {
         if (!data.currentStep)
             this.finished = true;
 
+        this._productive = this._finished && this._result !== BuildbotIteration.EXCEPTION && this._result !== BuildbotIteration.RETRY;
+        if (this._productive) {
+            var finishedAnyProductiveStep = false;
+            for (var i = 0; i < data.steps.length; ++i) {
+                var step = data.steps[i];
+                if (!step.isFinished)
+                    break;
+                if (step.name in BuildbotIteration.ProductiveSteps) {
+                    finishedAnyProductiveStep = true;
+                    break;
+                }
+            }
+            this._productive = finishedAnyProductiveStep;
+        }
+
         // Update the sorting since it is based on the revisions we just loaded.
         this.queue.sortIterations();
     },
index 599f4d7..c65216e 100644 (file)
@@ -1,3 +1,21 @@
+2014-08-27  Alexey Proskuryakov  <ap@apple.com>
+
+        https://bugs.webkit.org/show_bug.cgi?id=136317
+        Dashboard metrics page sometimes shows 0 for best time
+
+        Reviewed by Tim Horton.
+
+        This also affects regular dashboard display in a good way - iterations that failed
+        due to infrastructure misbehavior will more reliably show up as yellow and not red.
+
+        * BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js:
+        (BuildbotIteration): Added a list of steps that we actually care about. It will need to be
+        updated if we rename steps.
+        (BuildbotIteration.prototype.get productive): Now that computation is more involved,
+        do it once.
+        (BuildbotIteration.prototype._parseData): Tweak computation of "productive" - builds
+        that failed e.g. at downloading built archive step are not productive.
+
 2014-08-27  Brent Fulgham  <bfulgham@apple.com>
 
         [Win] Unreviewed gardening.