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