| 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 |