| Index: tools/sheriffing/buildinfo.js
|
| diff --git a/tools/sheriffing/buildinfo.js b/tools/sheriffing/buildinfo.js
|
| deleted file mode 100644
|
| index 66e7360a75b53af66bd0055ee1540f4eab3e79fb..0000000000000000000000000000000000000000
|
| --- a/tools/sheriffing/buildinfo.js
|
| +++ /dev/null
|
| @@ -1,137 +0,0 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -/** Information about a particular build. */
|
| -function BuildInfo(json) {
|
| - // Parse out the status message for the build.
|
| - var statusText;
|
| - if (json.currentStep) {
|
| - statusText = 'running ' + json.currentStep.name;
|
| - } else {
|
| - statusText = json.text.join(' ');
|
| - }
|
| -
|
| - // Determine what state the build is in.
|
| - var state;
|
| - if (statusText.indexOf('exception') != -1) {
|
| - state = 'exception';
|
| - } else if (statusText.indexOf('build successful') == 0) {
|
| - state = 'success';
|
| - } else if (statusText.indexOf('failed') == 0) {
|
| - state = 'failed';
|
| - } else if (statusText.indexOf('offline') != -1) {
|
| - state = 'offline';
|
| - } else if (statusText.indexOf('warnings') != -1) {
|
| - state = 'warnings';
|
| - } else if (statusText.indexOf('running') != -1) {
|
| - state = 'running';
|
| - } else {
|
| - state = 'unknown';
|
| - }
|
| -
|
| - var failures = (state == 'failed') ? this.parseFailures(json) : null;
|
| -
|
| - this.number = json.number;
|
| - this.state = state;
|
| - this.failures = failures;
|
| - this.statusText = statusText;
|
| - this.truncatedStatusText = truncateStatusText(statusText);
|
| -}
|
| -
|
| -/** Save data about failed tests to perform blamelist intersections. */
|
| -BuildInfo.prototype.parseFailures = function(json) {
|
| - var revisionRange = this.getRevisionRange(json);
|
| - if (revisionRange == null) return null;
|
| -
|
| - var failures = [];
|
| - var botName = json.builderName;
|
| - for (var i = 0; i < json.steps.length; ++i) {
|
| - var step = json.steps[i];
|
| - var binaryName = step.name;
|
| - if (step.results[0] != 0) { // Failed.
|
| - for (var j = 0; j < step.logs.length; ++j) {
|
| - var log = step.logs[j];
|
| - if (log[0] == 'stdio')
|
| - continue;
|
| - var testName = log[0];
|
| - failures.push([botName, binaryName, testName, revisionRange]);
|
| - }
|
| - }
|
| - }
|
| -
|
| - return failures;
|
| -};
|
| -
|
| -/**
|
| - * Get the revisions involved in a build. Sadly, this only works on Chromium's
|
| - * main builders because downstream trees provide git revision SHA1s through
|
| - * JSON instead of SVN numbers.
|
| - */
|
| -BuildInfo.prototype.getRevisionRange = function(json) {
|
| - if (json.sourceStamp.changes.length == 0) {
|
| - return null;
|
| - }
|
| -
|
| - var lowest = parseInt(json.sourceStamp.changes[0].revision, 10);
|
| - var highest = parseInt(json.sourceStamp.changes[0].revision, 10);
|
| - for (var i = 1; i < json.sourceStamp.changes.length; ++i) {
|
| - var rev = parseInt(json.sourceStamp.changes[i].revision, 10);
|
| - if (rev < lowest)
|
| - lowest = rev;
|
| - if (rev > highest)
|
| - highest = rev;
|
| - }
|
| - return [lowest, highest];
|
| -};
|
| -
|
| -/** Creates HTML to display info about this build. */
|
| -BuildInfo.prototype.createHtml = function(buildNumberCell,
|
| - botUrl,
|
| - showFullInfo) {
|
| - var fullStatusText = 'Build ' + this.number + ':\n' + this.statusText;
|
| - createBuildHtml(buildNumberCell,
|
| - botUrl + '/builds/' + this.number,
|
| - showFullInfo ? this.number : null,
|
| - fullStatusText,
|
| - showFullInfo ? this.truncatedStatusText : null,
|
| - this.state);
|
| -};
|
| -
|
| -/** Creates a table cell for a particular build number. */
|
| -function createBuildHtml(cellElement,
|
| - url,
|
| - buildNumber,
|
| - fullStatusText,
|
| - truncatedStatusText,
|
| - buildState) {
|
| - // Create a link to the build results.
|
| - var linkElement = document.createElement('a');
|
| - linkElement.href = url;
|
| -
|
| - // Display either the build number (for the last completed build), or show the
|
| - // status of the step.
|
| - var buildIdentifierElement = document.createElement('span');
|
| - if (buildNumber) {
|
| - buildIdentifierElement.className = 'build-identifier';
|
| - buildIdentifierElement.innerHTML = buildNumber;
|
| - } else {
|
| - buildIdentifierElement.className = 'build-letter';
|
| - buildIdentifierElement.innerHTML = buildState.toUpperCase()[0];
|
| - }
|
| - linkElement.appendChild(buildIdentifierElement);
|
| -
|
| - // Show the status of the build in truncated form so it doesn't take up the
|
| - // whole screen.
|
| - if (truncatedStatusText) {
|
| - var statusElement = document.createElement('span');
|
| - statusElement.className = 'build-status';
|
| - statusElement.innerHTML = truncatedStatusText;
|
| - linkElement.appendChild(statusElement);
|
| - }
|
| -
|
| - // Tack the cell onto the end of the row.
|
| - cellElement.className = buildState;
|
| - cellElement.title = fullStatusText;
|
| - cellElement.appendChild(linkElement);
|
| -}
|
|
|