OLD | NEW |
| (Empty) |
1 {{define "title"}} | |
2 {{ with .Build.Summary -}} | |
3 {{ if eq .Status.String "InfraFailure" }} | |
4 Infra Failure | |
5 {{ else if eq .Status.String "Exception" }} | |
6 Exception | |
7 {{ else if eq .Status.String "Failure" }} | |
8 Failed | |
9 {{ else if eq .Status.String "NotRun" }} | |
10 Pending | |
11 {{ else }} | |
12 {{ .Status.String }} | |
13 {{ end }} | |
14 - | |
15 {{ if .ParentLabel }} {{ .ParentLabel.Label }} {{ end }} | |
16 {{ .Label }} | |
17 {{- end }} | |
18 {{end}} | |
19 | |
20 {{define "head"}} | |
21 <link id="favicon" rel="shortcut icon" type="image/png" href="/static/common/fav
icon/ | |
22 {{- with .Build.Summary.Status.String -}} | |
23 {{- if eq . "Running" -}} yellow | |
24 {{- else if eq . "Success" -}} green | |
25 {{- else if eq . "InfraFailure" -}} purple | |
26 {{- else if eq . "Exception" -}} purple | |
27 {{- else if eq . "Expired" -}} darkpurple | |
28 {{- else if eq . "Failure" -}} red | |
29 {{- else if eq . "NotRun" -}} gray | |
30 {{- else if eq . "Warning" -}} yellow | |
31 {{- else if eq . "DependencyFailure" -}} redamber | |
32 {{- else if eq . "WaitingDependency" -}} brown | |
33 {{- else -}} milo | |
34 {{- end -}} | |
35 {{- end -}}-32.png"> | |
36 | |
37 {{end}} | |
38 | |
39 {{define "body"}} | |
40 <div class="content"> | |
41 <h1> | |
42 {{ if .Build.Summary.ParentLabel }} | |
43 Builder {{ .Build.Summary.ParentLabel | linkify }} | |
44 {{ end }} | |
45 Build {{.Build.Summary.Label}} | |
46 {{ if .Build.Summary.Banner }} | |
47 {{ range .Build.Summary.Banner.OS }} | |
48 <img src="/static/common/logos/{{.LogoBase.Img}}" alt="{{.LogoBase.Alt
}}" | |
49 width="25px"> | |
50 {{ end }} | |
51 {{ range .Build.Summary.Banner.Device }} | |
52 <img src="/static/common/logos/{{.LogoBase.Img}}" alt="{{.LogoBase.Alt
}}" | |
53 width="25px"> | |
54 {{ end }} | |
55 {{ end }} | |
56 </h1> | |
57 | |
58 <div class="column"> | |
59 | |
60 <h2>Results:</h2> | |
61 {{ with .Build.Summary }} | |
62 {{ if eq .Status.String "Running" }} | |
63 <p class="running result">Build Running | |
64 {{ else if eq .Status.String "Success" }} | |
65 <p class="success result">Build Successful | |
66 {{ else if eq .Status.String "InfraFailure" }} | |
67 <p class="exception result">Internal Failure | |
68 {{ else if eq .Status.String "Exception" }} | |
69 <p class="exception result">Exception | |
70 {{ else if eq .Status.String "Expired" }} | |
71 <p class="expired result">Internal Failure - Expired | |
72 {{ else if eq .Status.String "Failure" }} | |
73 <p class="failure result">Build Failed | |
74 {{ else if eq .Status.String "NotRun" }} | |
75 <p class="pending result">Build Pending | |
76 {{ else }} | |
77 <p class="failure result">Unknown status {{.Status.String }} | |
78 {{ end }} | |
79 <span class="subtitle"> | |
80 {{ range .Text }}<div class="step-text">{{ . }}</div>{{ end }} | |
81 </span> | |
82 </p> | |
83 {{ end }} <!-- with --> | |
84 | |
85 | |
86 {{ if .Build.SourceStamp }} | |
87 {{ with .Build.SourceStamp }} | |
88 | |
89 <h2>SourceStamp:</h2> | |
90 | |
91 <table class="info" width="100%"> | |
92 | |
93 {{ if .Commit.Repo }} | |
94 <tr><td class="left">Repository</td><td>{{ .Commit.Repo }}</td></tr> | |
95 {{ end }} | |
96 | |
97 {{ if .Commit.Branch }} | |
98 <tr><td class="left">Branch</td><td>{{ .Commit.Branch }}</td></tr> | |
99 {{ end }} | |
100 | |
101 {{ if .Commit.RequestRevision }} | |
102 <tr><td class="left">Revision</td><td>{{ .Commit.RequestRevision | linki
fy }}</td></tr> | |
103 {{ end }} | |
104 | |
105 {{ if .Commit.Revision }} | |
106 <tr><td class="left">Got Revision</td><td>{{ .Commit.Revision | linkify
}}</td></tr> | |
107 {{ end }} | |
108 | |
109 {{ if .Commit.Changelist }} | |
110 <tr><td class="left">Patch</td><td>{{ .Commit.Changelist | linkify }}</t
d></tr> | |
111 {{ end }} | |
112 | |
113 </table> | |
114 {{ end }} <!-- with --> | |
115 {{ end }} <!-- if --> | |
116 | |
117 {{ if or .Build.Summary.Bot .Build.Summary.Source }} | |
118 <h2>Execution:</h2> | |
119 <ul> | |
120 {{ if .Build.Summary.Source }} | |
121 <li> | |
122 Source: | |
123 <a href="{{ .Build.Summary.Source.URL }}">{{ .Build.Summary.Source.Lab
el }}</a> | |
124 </li> | |
125 {{ end }} | |
126 | |
127 {{ if .Build.Summary.Bot }} | |
128 <li> | |
129 Bot: | |
130 <a href="{{ .Build.Summary.Bot.URL }}">{{ .Build.Summary.Bot.Label }}<
/a> | |
131 </li> | |
132 {{ end }} | |
133 | |
134 {{ if .Build.Summary.Recipe}} | |
135 <li> | |
136 Recipe: {{ .Build.Summary.Recipe | linkify }} | |
137 </li> | |
138 {{ end }} | |
139 </ul> | |
140 {{ end }} <!-- if --> | |
141 | |
142 {{ if .Build.SourceStamp }} | |
143 {{ if .Build.SourceStamp.Source }} | |
144 <h2>Reason:</h2> | |
145 <p>{{ .Source }}</p> | |
146 {{ end }} | |
147 {{ end }} | |
148 | |
149 {{ if or .Build.Components .Build.Summary.SubLink }} | |
150 <h2>Steps and Logfiles:</h2> | |
151 Show: | |
152 <input type="radio" name="hider" id="showAll"> | |
153 <label for="showAll">All</label> | |
154 <input type="radio" name="hider" id="showStandard" checked> | |
155 <label for="showStandard">Standard</label> | |
156 <input type="radio" name="hider" id="showInteresting"> | |
157 <label for="showInteresting">Non-Green Only</label> | |
158 <ol id="steps" class="standard"> | |
159 | |
160 {{ with .Build.Summary }} | |
161 {{ if .SubLink }} | |
162 <li class="verbosity-{{.Verbosity.String}}"> | |
163 <div class="status-{{.Status}} result"> | |
164 {{ if .Duration -}} | |
165 <span class="duration" | |
166 data-starttime="{{ .Started | formatTime }}" | |
167 {{ if .Finished }}data-endtime="{{ .Finished | formatTime
}}"{{ end }}> | |
168 ( {{ .Duration | humanDuration }} )</span> | |
169 {{- end }} | |
170 <b>Steps</b> | |
171 </div> | |
172 <ul> | |
173 {{ range .SubLink }} | |
174 <li class="sublink">{{ . | linkifySet }}</li> | |
175 {{ end }} | |
176 </ul> | |
177 </li> | |
178 {{ end }} | |
179 {{ end }} | |
180 | |
181 {{ range .Build.Components }} | |
182 <li class="verbosity-{{.Verbosity.String}}"> | |
183 <div class="status-{{.Status}} result"> | |
184 {{ if .Duration -}} | |
185 <span class="duration" | |
186 data-starttime="{{ .Started | formatTime }}" | |
187 {{ if .Finished }}data-endtime="{{ .Finished | formatTime }}
"{{ end }}> | |
188 ( {{ .Duration | humanDuration }} )</span> | |
189 {{- end }} | |
190 <b>{{.Label}}</b> | |
191 <span> | |
192 {{ range .Text -}} | |
193 <div class="step-text"> | |
194 {{- if . -}}{{- . -}}{{- else -}} {{- end -}} | |
195 </div> | |
196 {{- end }} | |
197 </span> | |
198 </div> | |
199 <ul> | |
200 {{ if .MainLink }} | |
201 <li class="sublink">{{.MainLink | linkifySet}}</li> | |
202 {{- if eq .Verbosity.String "Interesting" -}} | |
203 {{ range .MainLink }} | |
204 <link rel="prerender" href="{{.URL}}"> | |
205 <link rel="prefetch" href="{{.URL}}"> | |
206 {{ end }} | |
207 {{ end }} | |
208 {{- end }} | |
209 {{ range .SubLink }} | |
210 <li class="sublink">{{. | linkifySet}}</li> | |
211 {{ end }} | |
212 {{ if not (or .MainLink .SubLink) }} | |
213 <li class="sublink"> - no logs - </li> | |
214 {{ end }} | |
215 </ul> | |
216 </li> | |
217 {{ end }} | |
218 </ol> | |
219 {{ end }} <!-- if .Build.Components --> | |
220 | |
221 </div> | |
222 | |
223 <div class="column"> | |
224 | |
225 <h2>Build Properties:</h2> | |
226 | |
227 <table class="info BuildProperties" width="100%"> | |
228 <tr><th>Name</th><th>Value</th><th>Source</th></tr> | |
229 | |
230 {{ range .Build.PropertyGroup }} | |
231 {{ $name := .GroupName }} | |
232 {{ range .Property }} | |
233 <tr> | |
234 <td class="left">{{.Key}}</td> | |
235 <td class="middle"><abbr title="{{.Value}}">{{.Value}}</abbr></td> | |
236 <td>{{$name}}</td> | |
237 </tr> | |
238 {{ end }} | |
239 {{ end }} | |
240 </table> | |
241 | |
242 {{ if .Build.Blame }} | |
243 <h2>Blamelist:</h2> | |
244 <ol> | |
245 {{ range .Build.Blame }} | |
246 <li>{{ .AuthorName }} ({{ .AuthorEmail | obfuscateEmail }})</li> | |
247 {{ end }} | |
248 </ol> | |
249 {{ end }} | |
250 | |
251 <h2>Timing:</h2> | |
252 <table class="info" width="100%"> | |
253 <tr class="alt"><td class="left">Start</td> | |
254 <td> | |
255 {{ .Build.Summary.Started | localTime "N/A" }} | |
256 </td></tr> | |
257 <tr><td class="left">End</td> | |
258 <td> | |
259 {{ .Build.Summary.Finished | localTime "N/A" }} | |
260 </td></tr> | |
261 <tr class="alt"><td class="left">Elapsed</td> | |
262 <td id="duration"> | |
263 {{ if .Build.Summary.Started.IsZero }} | |
264 N/A | |
265 {{ else }} | |
266 {{ .Build.Summary.Duration | humanDuration }} | |
267 {{ end }} | |
268 </td></tr> | |
269 </table> | |
270 | |
271 </div> | |
272 | |
273 {{ if .Build.Blame}} | |
274 <div class="column"> | |
275 <h2>All Changes:</h2> | |
276 <ol> | |
277 {{ range .Build.Blame }} | |
278 <li> | |
279 <h3>{{.Title}}</h3> | |
280 <table class="info"> | |
281 <tbody> | |
282 <tr> | |
283 <td class="left">Changed by</td> | |
284 <td class="value"> | |
285 {{ if .AuthorName }}{{ .AuthorName }} - {{ end }} | |
286 {{ .AuthorEmail | obfuscateEmail }} | |
287 </td> | |
288 </tr> | |
289 <tr> | |
290 <td class="left">Changed at</td> | |
291 <td class="value">{{ .CommitTime | localTime "N/A" }}</td> | |
292 </tr> | |
293 <tr> | |
294 <td class="left">Repository</td> | |
295 <td class="value">{{ .Repo }}</td> | |
296 </tr> | |
297 <tr> | |
298 <td class="left">Branch</td> | |
299 <td class="value">{{ .Branch }}</td> | |
300 </tr> | |
301 <tr> | |
302 <td class="left">Revision</td> | |
303 <td class="value">{{ .Revision | linkify }}</td> | |
304 </tr> | |
305 </tbody> | |
306 </table> | |
307 | |
308 {{ if .Description }} | |
309 <h3>Comments</h3> | |
310 <pre class="comments">{{ .Description }}</pre> | |
311 {{ end }} | |
312 | |
313 {{ if .File }} | |
314 <h3 class="files">Changed files</h3> | |
315 <ul class="alternating"> | |
316 {{ range .File }} | |
317 <li class="file">{{ . }}</li> | |
318 {{ end }} | |
319 </ul> | |
320 {{ end }} | |
321 | |
322 </li> | |
323 {{ end }} | |
324 </ol> | |
325 </div> | |
326 {{ end }} | |
327 </div> | |
328 </div> | |
329 <script language="javascript"> | |
330 $(document).ready(function() { | |
331 | |
332 var check = function(className) { | |
333 $("#steps").removeClass("all standard interesting").addClass(className) | |
334 } | |
335 | |
336 $("#showInteresting").click(function(e) { | |
337 check("interesting"); | |
338 }); | |
339 $("#showStandard").click(function(e) { | |
340 check("standard"); | |
341 }); | |
342 $("#showAll").click(function(e) { | |
343 check("all"); | |
344 }); | |
345 | |
346 $("input[name='hider']").each(function(){ | |
347 if ($(this).prop("checked")) { | |
348 $(this).click(); | |
349 } | |
350 }); | |
351 }); | |
352 </script> | |
353 {{end}} | |
OLD | NEW |