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

Side by Side 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 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 unified diff | Download patch
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <head> 2 <head>
3 <title>Build Failure</title> 3 <title>Build Failure</title>
4 <meta charset="utf-8"> 4 <meta charset="utf-8">
5 <link rel="stylesheet" href="/common.css"> 5 <link rel="stylesheet" href="/common.css">
6 <style> 6 <style>
7 .running { 7 .running {
8 color: #666666; 8 color: #666666;
9 background-color: #fffc6c; 9 background-color: #fffc6c;
10 border-color: #c5c56d; 10 border-color: #c5c56d;
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 338
339 tableString += generateHeuristicCulpritCls(result.heuristic_analysis.s uspected_cls, result.supported); 339 tableString += generateHeuristicCulpritCls(result.heuristic_analysis.s uspected_cls, result.supported);
340 tableString += '</tr>'; 340 tableString += '</tr>';
341 }); 341 });
342 342
343 $('#unclassified_failures_table tbody').append(tableString); 343 $('#unclassified_failures_table tbody').append(tableString);
344 $('#unclassified_failures').removeClass('not-display'); 344 $('#unclassified_failures').removeClass('not-display');
345 } 345 }
346 } 346 }
347 347
348 function displayUnclassifiedFailuresToAdmins(step_name, results) {
chanli 2016/06/02 23:32:52 Just a thought: could we re-use some code from dis
lijeffrey 2016/06/27 22:15:43 This whole file should probably be refactored , we
349 if (!jQuery.isEmptyObject(results)) {
350 var tableString = '';
351 $.each(results, function(index, result) {
352 tableString += '<tr>';
353 var rowspan = result.heuristic_analysis.suspected_cls.length > 0 ? res ult.heuristic_analysis.suspected_cls.length : 1;
354
355 tableString += generateCommonCellsForAllCategories(step_name, 'determi ned', index, result.tests, result.first_failure, result.last_pass, rowspan);
356
357 var tryJob = result.try_job;
358 var tryJobCulprit = tryJob.culprit;
359 if (! jQuery.isEmptyObject(tryJobCulprit)) {
360 var build_number = result.try_job.try_job_key.split('/')[2]; // try _job_key would look like: 'master_name/builder_name/build_number'.
361 tableString += '<td rowspan="' + rowspan + '"><a href="' + findit.bu ilderUrl + '/builds/' + build_number + '">' + build_number + '</a></td>';
362 var review_url = tryJobCulprit.url || tryJobCulprit.review_url || (f indit.defaultGitBaseUrl + tryJobCulprit.revision);
363 tableString += '<td rowspan="' + rowspan + '"><a href="' + review_ur l + '">' + tryJobCulprit.commit_position || tryJobCulprit.revision + '</a></td>' ;
364
365 } else {
366 tableString += '<td colspan="2" rowspan="' + rowspan + '">' + findit .tryjobStatusMessageMap[tryJob.status] + '</td>';
367 }
368
369 tableString += '<td rowspan="' + rowspan + '">';
370 tableString += '<li>Swarming task skipped for forced reruns by admins. </li>';
371 if (tryJob.try_job_url) {
372 tableString += '<li>For try job details: <a href="' + tryJob.try_job _url+ '">' + tryJob.try_job_build_number + '</a></li>';
373 }
374 tableString += '</td>';
375
376 tableString += generateHeuristicCulpritCls(result.heuristic_analysis.s uspected_cls, result.supported);
377 tableString += '</tr>';
378 });
379
380 $('#unclassified_failures_table tbody').append(tableString);
381 $('#unclassified_failures_admins').removeClass('not-display');
382 }
383 }
384
348 $(document).ready(function() { 385 $(document).ready(function() {
349 if (!findit.analysisCompleted) { 386 if (!findit.analysisCompleted) {
350 $('#status_message').text('running, will refresh in 5 seconds...'); 387 $('#status_message').text('running, will refresh in 5 seconds...');
351 $('#status_message').attr('class', 'running'); 388 $('#status_message').attr('class', 'running');
352 setTimeout(function() { 389 setTimeout(function() {
353 {% if show_debug_info %} 390 {% if show_debug_info %}
354 window.location.href = 'build-failure?url=' + findit.buildUrl + '&debu g=1'; 391 window.location.href = 'build-failure?url=' + findit.buildUrl + '&de bug=1';
355 {% else %} 392 {% else %}
356 window.location.href = 'build-failure?url=' + findit.buildUrl; 393 window.location.href = 'build-failure?url=' + findit.buildUrl;
357 {% endif %} 394 {% endif %}
358 }, 5000); 395 }, 5000);
359 } else { 396 } else {
360 if (findit.analysisFailed) { 397 if (findit.analysisFailed) {
361 $('#status_message').text('error'); 398 $('#status_message').text('error');
362 $('#status_message').attr('class', 'error'); 399 $('#status_message').attr('class', 'error');
363 } else { 400 } else {
364 // TODO: use another style when no culprit CL is found. 401 // TODO: use another style when no culprit CL is found.
365 $('#status_message').text('completed'); 402 $('#status_message').text('completed');
366 $('#status_message').attr('class', 'completed'); 403 $('#status_message').attr('class', 'completed');
367 404
368 $('.triage').click(triageAnalysisResult); 405 $('.triage').click(triageAnalysisResult);
369 406
370 if (!jQuery.isEmptyObject(findit.analysisResult)) { 407 if (!jQuery.isEmptyObject(findit.analysisResult)) {
371 $.each(findit.analysisResult, function(step_name, step_results) { 408 $.each(findit.analysisResult, function(step_name, step_results) {
372 $.each(step_results.results, function(category, results) { 409 $.each(step_results.results, function(category, results) {
373 if (category == 'reliable_failures') { 410 if (category == 'reliable_failures') {
374 {% if show_debug_info %} 411 {% if show_debug_info %}
375 displayReliableFailures(step_name, results); 412 displayReliableFailures(step_name, results);
376 {% else %} 413 {% else %}
377 displayReliableFailuresToSheriffs(step_name, results); 414 displayReliableFailuresToSheriffs(step_name, results);
378 {% endif %} 415 {% endif %}
379 } else if (category == 'unclassified_failures') { 416 } else if (category == 'unclassified_failures') {
417 {% if show_debug_info %}
418 displayUnclassifiedFailuresToAdmins(step_name, results);
419 {% else %}
380 displayUnclassifiedFailures(step_name, results); 420 displayUnclassifiedFailures(step_name, results);
381 } else if (category == 'flaky_failures') { 421 {% endif %}
382 displayFlakyFailures(step_name, results); 422 } else if (category == 'flaky_failures') {
383 } else { 423 displayFlakyFailures(step_name, results);
384 alert('Unrecongnizable category of test results, please file a bug for it.'); 424 } else {
385 } 425 alert('Unrecongnizable category of test results, please file a bug for it.');
426 }
386 }); 427 });
387 }); 428 });
388 } else { 429 } else {
389 $('#triage-and-table').text('no failure is found'); 430 $('#triage-and-table').text('no failure is found');
390 } 431 }
391 432
392 if (findit.analysisCorrect == 'True') { 433 if (findit.analysisCorrect == 'True') {
393 $('.thumb-up').addClass('triaged').removeClass('triage'); 434 $('.thumb-up').addClass('triaged').removeClass('triage');
394 } else if (findit.analysisCorrect == 'False') { 435 } else if (findit.analysisCorrect == 'False') {
395 $('.thumb-down').addClass('triaged').removeClass('triage'); 436 $('.thumb-down').addClass('triaged').removeClass('triage');
(...skipping 29 matching lines...) Expand all
425 <div> 466 <div>
426 Master: {{master_name}}<br> 467 Master: {{master_name}}<br>
427 Builder: <a href="https://build.chromium.org/p/{{master_name}}/builders/{{bu ilder_name}}">{{builder_name}}</a><br> 468 Builder: <a href="https://build.chromium.org/p/{{master_name}}/builders/{{bu ilder_name}}">{{builder_name}}</a><br>
428 Build Number: <a href="https://build.chromium.org/p/{{master_name}}/builders /{{builder_name}}/builds/{{build_number}}">{{build_number}}</a> 469 Build Number: <a href="https://build.chromium.org/p/{{master_name}}/builders /{{builder_name}}/builds/{{build_number}}">{{build_number}}</a>
429 </div> 470 </div>
430 <br> 471 <br>
431 472
432 <b>Heuristic analysis info:</b> 473 <b>Heuristic analysis info:</b>
433 <div id="analysis_info"> 474 <div id="analysis_info">
434 status: <span id="status_message"></span> 475 status: <span id="status_message"></span>
435 {% if show_debug_info %} 476 {% if show_debug_info %}
436 {% if pipeline_status_path %} 477 {% if pipeline_status_path %}
437 <a href="{{pipeline_status_path}}">pipeline</a> 478 <a href="{{pipeline_status_path}}">pipeline</a>
479 {% endif %}
480 <br>
481 Requested: {{analysis_request_time | default('N/A', true)}}<br>
482 {% if analysis_duration %}
483 Duration: {{analysis_duration}} seconds. <br>
484 {% else %}
485 Started: {{analysis_start_time | default('N/A', true)}}<br>
486 {% endif %}
487 Updated: {{analysis_update_time}}<br>
438 {% endif %} 488 {% endif %}
439 <br>
440 Requested: {{analysis_request_time | default('N/A', true)}}<br>
441 {% if analysis_duration %}
442 Duration: {{analysis_duration}} seconds. <br>
443 {% else %}
444 Started: {{analysis_start_time | default('N/A', true)}}<br>
445 {% endif %}
446 Updated: {{analysis_update_time}}<br>
447 {% endif %}
448 </div> 489 </div>
449 <br> 490 <br>
450 491
451 {% if analysis_completed %} 492 {% if analysis_completed %}
452 <b>Findit result:</b> 493 <b>Findit result:</b>
453 {% if analysis_failed %} 494 {% if analysis_failed %}
454 <span class="error">No result because of some error in analysis!</span> 495 <span class="error">No result because of some error in analysis!</span>
455 {% else %} 496 {% else %}
456 <div id="triage-and-table"> 497 <div id="triage-and-table">
457 <div id="analysis_result"> 498 <div id="analysis_result">
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
542 583
543 <div id="unclassified_failures" class='not-display'> 584 <div id="unclassified_failures" class='not-display'>
544 <b>Unclassified failures</b> 585 <b>Unclassified failures</b>
545 <table id="unclassified_failures_table"> 586 <table id="unclassified_failures_table">
546 <thead> 587 <thead>
547 <tr> 588 <tr>
548 <th rowspan="3" title="Failed step name" width="150px">Step</t h> 589 <th rowspan="3" title="Failed step name" width="150px">Step</t h>
549 <th rowspan="3" title="Failed test name" width="300px">Test(s) </th> 590 <th rowspan="3" title="Failed test name" width="300px">Test(s) </th>
550 <th rowspan="3" title="The build cycle in which the step start ed to fail">First Failure</th> 591 <th rowspan="3" title="The build cycle in which the step start ed to fail">First Failure</th>
551 <th rowspan="3" title="The last build cycle in which the step passed">Last Pass<br>Before Failure</th> 592 <th rowspan="3" title="The last build cycle in which the step passed">Last Pass<br>Before Failure</th>
552 <th rowspan="3" title="The reason why we're not sure about thi s result">Reason</th> 593 <th rowspan="3" title="The reason we're not sure about the res ult">Reason</th>
553 <th colspan="4">Suspected CLs</th> 594 <th colspan="4">Suspected CLs</th>
554 </tr> 595 </tr>
555 <tr> 596 <tr>
556 <th colspan="4">Heuristic Analysis Result</th> 597 <th colspan="4">Heuristic Analysis Result</th>
557 </tr> 598 </tr>
558 <tr> 599 <tr>
559 <th title="The build cycle in which the CL was built or tested for the first time">Build Number</th> 600 <th title="The build cycle in which the CL was built or tested for the first time">Build Number</th>
560 <th title="Git commit position/hash">Commit</th> 601 <th title="Git commit position/hash">Commit</th>
561 <th title="The higher score, the more suspected">Score (<a cla ss="score-info" href="javascript:">?</a>)</th> 602 <th title="The higher score, the more suspected">Score (<a cla ss="score-info" href="javascript:">?</a>)</th>
562 <th title="Why this CL is related to the failure">Hints</th> 603 <th title="Why this CL is related to the failure">Hints</th>
563 </tr> 604 </tr>
564 </thead> 605 </thead>
565 <tbody> 606 <tbody>
566 </tbody> 607 </tbody>
567 </table> 608 </table>
568 <br> 609 <br>
569 </div> 610 </div>
570 </div> 611 </div>
571 612
613 <div id="unclassified_failures_admins" class='not-display'>
614 <b>Unclassified failures</b>
615 <table id="unclassified_failures_table">
616 <thead>
617 <tr>
618 <th rowspan="3" title="Failed step name" width="150px">Step</t h>
619 <th rowspan="3" title="Failed test name" width="300px">Test(s) </th>
620 <th rowspan="3" title="The build cycle in which the step start ed to fail">First Failure</th>
621 <th rowspan="3" title="The last build cycle in which the step passed">Last Pass<br>Before Failure</th>
622 <th colspan="8">Suspected CLs</th>
623 </tr>
624 <tr>
625 <th colspan="3">Try Job Result</th>
626 <th colspan="5">Heuristic Analysis Result</th>
627 </tr>
628 <tr>
629 <th title="The build cycle in which the CL was built or tested for the first time">Build Number</th>
630 <th title="Git commit position/hash">Commit</th>
631 <th title="Information about related swarming rerun and try jo b">Swarming rerun and<br>Try Job Info</th>
632 <th title="The build cycle in which the CL was built or tested for the first time">Build Number</th>
633 <th title="Git commit position/hash">Commit</th>
634 <th title="The higher score, the more suspected">Score (<a cla ss="score-info" href="javascript:">?</a>)</th>
635 <th title="Why this CL is related to the failure">Hints</th>
636 </tr>
637 </thead>
638 <tbody>
639 </tbody>
640 </table>
641 <br>
642 </div>
643
572 <div class="thumbs-up-down"> 644 <div class="thumbs-up-down">
573 <b>Feedback on Findit result:</b><br> 645 <b>Feedback on Findit result:</b><br>
574 <div class="triage thumb-up">Correct <img src="https://www.gstatic.com /images/icons/material/system/1x/thumb_up_black_24dp.png"/></div> 646 <div class="triage thumb-up">Correct <img src="https://www.gstatic.com /images/icons/material/system/1x/thumb_up_black_24dp.png"/></div>
575 <div class="triage thumb-down"><img src="https://www.gstatic.com/image s/icons/material/system/1x/thumb_down_black_24dp.png"/> Incorrect</div> 647 <div class="triage thumb-down"><img src="https://www.gstatic.com/image s/icons/material/system/1x/thumb_down_black_24dp.png"/> Incorrect</div>
576 </div> 648 </div>
577 </div> 649 </div>
578 {% endif %} 650 {% endif %}
579 {% endif %} 651 {% endif %}
580 652
581 {% if show_triage_help_button %} 653 {% if show_triage_help_button %}
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
618 appearing in the failure log. (eg: file.h was changed and 690 appearing in the failure log. (eg: file.h was changed and
619 file_unittest.cc or file_impl.cc appeared in the log.)</li> 691 file_unittest.cc or file_impl.cc appeared in the log.)</li>
620 <li>1: The CL rolled a dependency within src/DEPS and a file of that 692 <li>1: The CL rolled a dependency within src/DEPS and a file of that
621 dependency appears in the failure log. (eg: third_party/dep 693 dependency appears in the failure log. (eg: third_party/dep
622 was changed in src/DEPS and third_party/dep/f.cpp appeared 694 was changed in src/DEPS and third_party/dep/f.cpp appeared
623 in the log.)</li> 695 in the log.)</li>
624 </ul> 696 </ul>
625 (More rules will be added when implemented.) 697 (More rules will be added when implemented.)
626 </div> 698 </div>
627 </body> 699 </body>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698