Modified: trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js (173026 => 173027)
--- trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js 2014-08-27 22:34:02 UTC (rev 173026)
+++ trunk/Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BuildbotIteration.js 2014-08-27 22:35:18 UTC (rev 173027)
@@ -41,6 +41,7 @@
this.loaded = false;
this.isLoading = false;
+ this._productive = false;
this.openSourceRevision = null;
this.internalRevision = null;
@@ -66,6 +67,20 @@
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 @@
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 @@
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 @@
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();
},
Modified: trunk/Tools/ChangeLog (173026 => 173027)
--- trunk/Tools/ChangeLog 2014-08-27 22:34:02 UTC (rev 173026)
+++ trunk/Tools/ChangeLog 2014-08-27 22:35:18 UTC (rev 173027)
@@ -1,3 +1,21 @@
+2014-08-27 Alexey Proskuryakov <a...@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 <bfulg...@apple.com>
[Win] Unreviewed gardening.