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

Side by Side Diff: go/src/infra/appengine/sheriff-o-matic/elements/som-extension-build-failure.html

Issue 2058173003: [som] Add revision range exapansion. (Closed) Base URL: https://chromium.googlesource.com/infra/infra.git@master
Patch Set: no-message:) 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
« no previous file with comments | « no previous file | go/src/infra/appengine/sheriff-o-matic/elements/som-rev-range.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <link rel="import" href="/bower_components/polymer/polymer.html"> 1 <link rel="import" href="/bower_components/polymer/polymer.html">
2 <link rel="import" href="/bower_components/iron-ajax/iron-ajax.html"> 2 <link rel="import" href="/bower_components/iron-ajax/iron-ajax.html">
3 <link rel="import" href="/bower_components/iron-collapse/iron-collapse.html"> 3 <link rel="import" href="/bower_components/iron-collapse/iron-collapse.html">
4 <link rel="import" href="/bower_components/iron-flex-layout/classes/iron-flex-la yout.html"> 4 <link rel="import" href="/bower_components/iron-flex-layout/classes/iron-flex-la yout.html">
5 <link rel="import" href="/bower_components/iron-icons/hardware-icons.html"> 5 <link rel="import" href="/bower_components/iron-icons/hardware-icons.html">
6 <link rel="import" href="/bower_components/iron-icons/iron-icons.html"> 6 <link rel="import" href="/bower_components/iron-icons/iron-icons.html">
7 <link rel="import" href="/bower_components/iron-page-url/iron-page-url.html"> 7 <link rel="import" href="/bower_components/iron-page-url/iron-page-url.html">
8 <link rel="import" href="/bower_components/paper-button/paper-button.html"> 8 <link rel="import" href="/bower_components/paper-button/paper-button.html">
9 <link rel="import" href="/bower_components/paper-card/paper-card.html"> 9 <link rel="import" href="/bower_components/paper-card/paper-card.html">
10 <link rel="import" href="/bower_components/paper-drawer-panel/paper-drawer-panel .html"> 10 <link rel="import" href="/bower_components/paper-drawer-panel/paper-drawer-panel .html">
11 <link rel="import" href="/bower_components/paper-header-panel/paper-header-panel .html"> 11 <link rel="import" href="/bower_components/paper-header-panel/paper-header-panel .html">
12 <link rel="import" href="/bower_components/paper-icon-button/paper-icon-button.h tml"> 12 <link rel="import" href="/bower_components/paper-icon-button/paper-icon-button.h tml">
13 <link rel="import" href="/bower_components/paper-item/paper-item.html"> 13 <link rel="import" href="/bower_components/paper-item/paper-item.html">
14 <link rel="import" href="/bower_components/paper-progress/paper-progress.html"> 14 <link rel="import" href="/bower_components/paper-progress/paper-progress.html">
15 <link rel="import" href="/bower_components/paper-toolbar/paper-toolbar.html"> 15 <link rel="import" href="/bower_components/paper-toolbar/paper-toolbar.html">
16 <link rel="import" href="/elements/som-rev-range.html">
16 17
17 <dom-module id="som-extension-build-failure"> 18 <dom-module id="som-extension-build-failure">
18 <template> 19 <template>
19 <style> 20 <style>
20 .builder { 21 .builder {
21 border-radius: 2px; 22 border-radius: 2px;
22 border: 1px solid #dcdcdc; 23 border: 1px solid #dcdcdc;
23 font-size: smaller; 24 font-size: smaller;
24 margin: .1em; 25 margin: .1em;
25 padding: .5em; 26 padding: .5em;
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 </a> 83 </a>
83 </li> 84 </li>
84 </template> 85 </template>
85 </ul> 86 </ul>
86 </div> 87 </div>
87 </template> 88 </template>
88 </div> 89 </div>
89 <div id="regression-ranges"> 90 <div id="regression-ranges">
90 <template is="dom-repeat" items="[[extension.regression_ranges]]" as="re gressionRange" filter="_showRegressionRange"> 91 <template is="dom-repeat" items="[[extension.regression_ranges]]" as="re gressionRange" filter="_showRegressionRange">
91 <div> 92 <div>
92 [[regressionRange.repo]]: 93 <som-rev-range range="[[regressionRange]]"></som-rev-range>
93 <a target="_blank" href$="[[_regressionRangeLink(regressionRange)]]" >[[_regressionRange(regressionRange)]]</a>
94 </div> 94 </div>
95 </template> 95 </template>
96 </div> 96 </div>
97 </div> 97 </div>
98 </template> 98 </template>
99 <script> 99 <script>
100 (function() { 100 (function() {
101 'use strict'; 101 'use strict';
102 102
103 Polymer({ 103 Polymer({
104 is: 'som-extension-build-failure', 104 is: 'som-extension-build-failure',
105 105
106 properties: { 106 properties: {
107 extension: { 107 extension: {
108 type: Object, 108 type: Object,
109 value: null 109 value: null
110 }, 110 },
111 type: { 111 type: {
112 type: String, 112 type: String,
113 value: '' 113 value: ''
114 }, 114 },
115 }, 115 },
116 116
117 _haveBuilders: function(extension) { 117 _haveBuilders: function(extension) {
118 return extension && extension.builders && extension.builders.length > 0; 118 return extension && extension.builders && extension.builders.length > 0;
119 }, 119 },
120 120
121 _regressionRange: function(range) {
122 if (!range.positions || range.positions.length == 0) {
123 return '';
124 }
125
126 let start = this._parseCommitPosition(range.positions[0]);
127 if (range.positions.length == 1) {
128 return start;
129 }
130
131 let end = this._parseCommitPosition(
132 range.positions[range.positions.length - 1]);
133
134 if (start && end) {
135 return `${start} - ${end}`;
136 }
137 },
138
139 _regressionRangeLink: function(range) {
140 if (!range.positions) {
141 return '';
142 }
143 let end = this._parseCommitPosition(range.positions[0]);
144 let start = end;
145 if (range.positions.length > 1) {
146 end = this._parseCommitPosition(
147 range.positions[range.positions.length - 1]);
148 }
149 return 'http://test-results.appspot.com/revision_range?start=' +
150 `${start}&end=${end}`;
151 },
152
153 _parseCommitPosition: function(pos) {
154 let groups = /refs\/heads\/master@{#([0-9]+)}/.exec(pos);
155 if (groups && groups.length == 2) {
156 return groups[1];
157 }
158 },
159
160 _failureCount: function(builder) { 121 _failureCount: function(builder) {
161 // The build number range is inclusive. 122 // The build number range is inclusive.
162 let numBuilds = builder.latest_failure - builder.first_failure + 1; 123 let numBuilds = builder.latest_failure - builder.first_failure + 1;
163 if (numBuilds > 1) { 124 if (numBuilds > 1) {
164 return `[${numBuilds} since first detection]`; 125 return `[${numBuilds} since first detection]`;
165 } 126 }
166 }, 127 },
167 128
168 _classForBuilder: function(builder) { 129 _classForBuilder: function(builder) {
169 let classes = ['builder'] 130 let classes = ['builder']
170 if (this._failureCount(builder) > 1) { 131 if (this._failureCount(builder) > 1) {
171 classes.push('multiple-failures'); 132 classes.push('multiple-failures');
172 } 133 }
173 if (this.type == 'infra-failure') { 134 if (this.type == 'infra-failure') {
174 classes.push('infra-failure'); 135 classes.push('infra-failure');
175 } 136 }
176 return classes.join(' '); 137 return classes.join(' ');
177 }, 138 },
178 139
179 _showRegressionRange: function(range) { 140 _showRegressionRange: function(range) {
180 return this._regressionRange(range) && range.positions.length > 0; 141 return range.positions && range.positions.length > 0;
181 }, 142 },
182 143
183 _uberify: function(url) { 144 _uberify: function(url) {
184 let u = new URL(url); 145 let u = new URL(url);
185 if (u.hostname.includes('chromium.org')) { 146 if (u.hostname.includes('chromium.org')) {
186 u.hostname = 'uberchromegw.corp.google.com'; 147 u.hostname = 'uberchromegw.corp.google.com';
187 u.pathname = u.pathname.replace('/p/', '/i/'); 148 u.pathname = u.pathname.replace('/p/', '/i/');
188 } 149 }
189 u.protocol = 'https:' 150 u.protocol = 'https:'
190 return u.toString(); 151 return u.toString();
191 } 152 }
192 }); 153 });
193 })(); 154 })();
194 </script> 155 </script>
195 </dom-module> 156 </dom-module>
OLDNEW
« no previous file with comments | « no previous file | go/src/infra/appengine/sheriff-o-matic/elements/som-rev-range.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698