Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2034)

Unified Diff: appengine/findit/templates/build_failure.html

Issue 2026283002: [Findit] Adding logic to force try jobs regardless of bailout or previous results (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: Addressing comments and rebase Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: appengine/findit/templates/build_failure.html
diff --git a/appengine/findit/templates/build_failure.html b/appengine/findit/templates/build_failure.html
index 3a395c378aa943b44204e1a96f7cc01754cf0363..aa6bc0438d5d664ecb8caa0905934461a2e4e77a 100644
--- a/appengine/findit/templates/build_failure.html
+++ b/appengine/findit/templates/build_failure.html
@@ -345,15 +345,53 @@
}
}
+ function displayUnclassifiedFailuresToAdmins(step_name, results) {
+ if (!jQuery.isEmptyObject(results)) {
+ var tableString = '';
+ $.each(results, function(index, result) {
+ tableString += '<tr>';
+ var rowspan = result.heuristic_analysis.suspected_cls.length > 0 ? result.heuristic_analysis.suspected_cls.length : 1;
+
+ tableString += generateCommonCellsForAllCategories(step_name, 'determined', index, result.tests, result.first_failure, result.last_pass, rowspan);
+
+ var tryJob = result.try_job;
+ var tryJobCulprit = tryJob.culprit;
+
+ if (! jQuery.isEmptyObject(tryJobCulprit)) {
+ var build_number = result.try_job.try_job_key.split('/')[2]; // try_job_key would look like: 'master_name/builder_name/build_number'.
+ tableString += '<td rowspan="' + rowspan + '"><a href="' + findit.builderUrl + '/builds/' + build_number + '">' + build_number + '</a></td>';
+ var review_url = tryJobCulprit.url || tryJobCulprit.review_url || (findit.defaultGitBaseUrl + tryJobCulprit.revision);
+ tableString += '<td rowspan="' + rowspan + '"><a href="' + review_url + '">' + tryJobCulprit.commit_position || tryJobCulprit.revision + '</a></td>';
+
+ } else {
+ tableString += '<td colspan="2" rowspan="' + rowspan + '">' + findit.tryjobStatusMessageMap[tryJob.status] + '</td>';
+ }
+
+ tableString += '<td rowspan="' + rowspan + '">';
+ tableString += '<li>Note: swarming tasks are skipped for forced reruns by admins.</li>';
+ if (tryJob.try_job_url) {
+ tableString += '<li>For try job details: <a href="' + tryJob.try_job_url+ '">' + tryJob.try_job_build_number + '</a></li>';
+ }
+ tableString += '</td>';
+
+ tableString += generateHeuristicCulpritCls(result.heuristic_analysis.suspected_cls, result.supported);
+ tableString += '</tr>';
+ });
+
+ $('#unclassified_failures_table tbody').append(tableString);
+ $('#unclassified_failures_admins').removeClass('not-display');
+ }
+ }
+
$(document).ready(function() {
if (!findit.analysisCompleted) {
$('#status_message').text('running, will refresh in 5 seconds...');
$('#status_message').attr('class', 'running');
setTimeout(function() {
{% if show_debug_info %}
- window.location.href = 'build-failure?url=' + findit.buildUrl + '&debug=1';
+ window.location.href = 'build-failure?url=' + findit.buildUrl + '&debug=1';
{% else %}
- window.location.href = 'build-failure?url=' + findit.buildUrl;
+ window.location.href = 'build-failure?url=' + findit.buildUrl;
{% endif %}
}, 5000);
} else {
@@ -370,19 +408,23 @@
if (!jQuery.isEmptyObject(findit.analysisResult)) {
$.each(findit.analysisResult, function(step_name, step_results) {
$.each(step_results.results, function(category, results) {
- if (category == 'reliable_failures') {
- {% if show_debug_info %}
+ if (category == 'reliable_failures') {
+ {% if show_debug_info %}
displayReliableFailures(step_name, results);
- {% else %}
+ {% else %}
displayReliableFailuresToSheriffs(step_name, results);
- {% endif %}
- } else if (category == 'unclassified_failures') {
+ {% endif %}
+ } else if (category == 'unclassified_failures') {
+ {% if show_debug_info %}
+ displayUnclassifiedFailuresToAdmins(step_name, results);
+ {% else %}
displayUnclassifiedFailures(step_name, results);
- } else if (category == 'flaky_failures') {
- displayFlakyFailures(step_name, results);
- } else {
- alert('Unrecongnizable category of test results, please file a bug for it.');
- }
+ {% endif %}
+ } else if (category == 'flaky_failures') {
+ displayFlakyFailures(step_name, results);
+ } else {
+ alert('Unrecongnizable category of test results, please file a bug for it.');
+ }
});
});
} else {
@@ -432,19 +474,19 @@
<b>Heuristic analysis info:</b>
<div id="analysis_info">
status: <span id="status_message"></span>
- {% if show_debug_info %}
- {% if pipeline_status_path %}
- <a href="{{pipeline_status_path}}">pipeline</a>
- {% endif %}
- <br>
- Requested: {{analysis_request_time | default('N/A', true)}}<br>
- {% if analysis_duration %}
- Duration: {{analysis_duration}} seconds. <br>
- {% else %}
- Started: {{analysis_start_time | default('N/A', true)}}<br>
+ {% if show_debug_info %}
+ {% if pipeline_status_path %}
+ <a href="{{pipeline_status_path}}">pipeline</a>
+ {% endif %}
+ <br>
+ Requested: {{analysis_request_time | default('N/A', true)}}<br>
+ {% if analysis_duration %}
+ Duration: {{analysis_duration}} seconds. <br>
+ {% else %}
+ Started: {{analysis_start_time | default('N/A', true)}}<br>
+ {% endif %}
+ Updated: {{analysis_update_time}}<br>
{% endif %}
- Updated: {{analysis_update_time}}<br>
- {% endif %}
</div>
<br>
@@ -549,7 +591,7 @@
<th rowspan="3" title="Failed test name" width="300px">Test(s)</th>
<th rowspan="3" title="The build cycle in which the step started to fail">First Failure</th>
<th rowspan="3" title="The last build cycle in which the step passed">Last Pass<br>Before Failure</th>
- <th rowspan="3" title="The reason why we're not sure about this result">Reason</th>
+ <th rowspan="3" title="The reason we're not sure about the result">Reason</th>
<th colspan="4">Suspected CLs</th>
</tr>
<tr>
@@ -569,6 +611,37 @@
</div>
</div>
+ <div id="unclassified_failures_admins" class='not-display'>
+ <b>Unclassified failures</b>
+ <table id="unclassified_failures_table">
+ <thead>
+ <tr>
+ <th rowspan="3" title="Failed step name" width="150px">Step</th>
+ <th rowspan="3" title="Failed test name" width="300px">Test(s)</th>
+ <th rowspan="3" title="The build cycle in which the step started to fail">First Failure</th>
+ <th rowspan="3" title="The last build cycle in which the step passed">Last Pass<br>Before Failure</th>
+ <th colspan="8">Suspected CLs</th>
+ </tr>
+ <tr>
+ <th colspan="3">Try Job Result</th>
+ <th colspan="5">Heuristic Analysis Result</th>
+ </tr>
+ <tr>
+ <th title="The build cycle in which the CL was built or tested for the first time">Build Number</th>
+ <th title="Git commit position/hash">Commit</th>
+ <th title="Information about related swarming rerun and try job">Swarming rerun and<br>Try Job Info</th>
+ <th title="The build cycle in which the CL was built or tested for the first time">Build Number</th>
+ <th title="Git commit position/hash">Commit</th>
+ <th title="The higher score, the more suspected">Score (<a class="score-info" href="javascript:">?</a>)</th>
+ <th title="Why this CL is related to the failure">Hints</th>
+ </tr>
+ </thead>
+ <tbody>
+ </tbody>
+ </table>
+ <br>
+ </div>
+
<div class="thumbs-up-down">
<b>Feedback on Findit result:</b><br>
<div class="triage thumb-up">Correct <img src="https://www.gstatic.com/images/icons/material/system/1x/thumb_up_black_24dp.png"/></div>
« no previous file with comments | « appengine/findit/handlers/test/handlers_util_test.py ('k') | appengine/findit/waterfall/analyze_build_failure_pipeline.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698