| OLD | NEW |
| (Empty) |
| 1 {% extends "layout.html" %} | |
| 2 {% import 'forms.html' as forms %} | |
| 3 {% from "change_macros.html" import change with context %} | |
| 4 | |
| 5 {% block content %} | |
| 6 | |
| 7 <h1> | |
| 8 Builder <a href="{{ path_to_builder }}">{{ b.getBuilder().getName() }}</a> | |
| 9 Build #{{ b.getNumber() }} | |
| 10 <div class="bbp_placeholder" | |
| 11 id="{{ b.getProperty('mastername') }}:{{ b.getBuilder().getName() }}:{{ | |
| 12 b.getNumber() }}"> | |
| 13 </div> | |
| 14 </h1> | |
| 15 | |
| 16 <div class="column"> | |
| 17 | |
| 18 {% if not b.isFinished() %} | |
| 19 <h2>Build In Progress:</h2> | |
| 20 | |
| 21 {% if when_time %} | |
| 22 <p>ETA: {{ when_time }} [{{ when }}]</p> | |
| 23 {% endif %} | |
| 24 | |
| 25 {{ current_step }} | |
| 26 | |
| 27 {% if authz.advertiseAction('stopBuild') %} | |
| 28 <h2>Stop Build</h2> | |
| 29 {{ forms.stop_build(build_url+"/stop", authz, on_all=False, short=False, lab
el='This Build') }} | |
| 30 {% endif %} | |
| 31 {% else %} | |
| 32 <h2>Results:</h2> | |
| 33 | |
| 34 <p class="{{ result_css }} result"> | |
| 35 {{ b.getText()|join(' ')|capitalize }} | |
| 36 </p> | |
| 37 | |
| 38 {% if b.getTestResults() %} | |
| 39 <h3><a href="{{ tests_link }}"/></h3> | |
| 40 {% endif %} | |
| 41 {% endif %} | |
| 42 | |
| 43 <h2>SourceStamp:</h2> | |
| 44 | |
| 45 <table class="info" width="100%"> | |
| 46 {% set ss_class = cycler('alt','') %} | |
| 47 | |
| 48 {% if ss.project %} | |
| 49 <tr class="{{ ss_class.next() }}"><td class="left">Project</td><td>{{ ss.proje
ct|projectlink }}</td></tr> | |
| 50 {% endif %} | |
| 51 | |
| 52 {% if ss.repository %} | |
| 53 <tr class="{{ ss_class.next() }}"><td class="left">Repository</td><td>{{ ss.re
pository|repolink }}</td></tr> | |
| 54 {% endif %} | |
| 55 | |
| 56 {% if ss.branch %} | |
| 57 <tr class="{{ ss_class.next() }}"><td class="left">Branch</td><td>{{ ss.branch
|e }}</td></tr> | |
| 58 {% endif %} | |
| 59 | |
| 60 {% if ss.revision %} | |
| 61 <tr class="{{ ss_class.next() }}"><td class="left">Revision</td><td>{{ ss.revi
sion|revlink(ss.repository) }}</td></tr> | |
| 62 {% endif %} | |
| 63 | |
| 64 {% if got_revision %} | |
| 65 <tr class="{{ ss_class.next() }}"><td class="left">Got Revision</td><td>{{ got
_revision|revlink(ss.repository) }}</td></tr> | |
| 66 {% endif %} | |
| 67 | |
| 68 {% if ss.patch %} | |
| 69 <tr class="{{ ss_class.next() }}"><td class="left">Patch</td><td>YES</td></tr> | |
| 70 {% endif %} | |
| 71 | |
| 72 {% if ss.changes %} | |
| 73 <tr class="{{ ss_class.next() }}"><td class="left">Changes</td><td>see below</
td></tr> | |
| 74 {% endif %} | |
| 75 | |
| 76 {% if most_recent_rev_build %} | |
| 77 <tr class="{{ ss_class.next() }}"><td class="left" colspan="2">Build of most r
ecent revision</td></tr> | |
| 78 {% endif %} | |
| 79 | |
| 80 </table> | |
| 81 | |
| 82 {# | |
| 83 # TODO: turn this into a table, or some other sort of definition-list | |
| 84 # that doesn't take up quite so much vertical space | |
| 85 #} | |
| 86 | |
| 87 <h2>BuildSlave:</h2> | |
| 88 | |
| 89 {% if slave_url %} | |
| 90 <a href="{{ slave_url|e }}">{{ b.getSlavename()|e }}</a> | |
| 91 {% else %} | |
| 92 {{ b.getSlavename()|e }} | |
| 93 {% endif %} | |
| 94 | |
| 95 <h2>Reason:</h2> | |
| 96 <p> | |
| 97 {{ b.getReason()|e }} | |
| 98 </p> | |
| 99 | |
| 100 <h2>Steps and Logfiles:</h2> | |
| 101 | |
| 102 {# | |
| 103 # TODO: | |
| 104 # urls = self.original.getURLs() | |
| 105 # ex_url_class = "BuildStep external" | |
| 106 # for name, target in urls.items(): | |
| 107 # text.append('[<a href="%s" class="%s">%s</a>]' % | |
| 108 # (target, ex_url_class, html.escape(name))) | |
| 109 #} | |
| 110 | |
| 111 {% set nest_level = -1 %} | |
| 112 {% set previous_name = "unknown step" %} | |
| 113 {% for s in steps %} | |
| 114 {# Adjust the indentation to the current step level. We maintain as an | |
| 115 # invariant that we are always in a content section (e.g. an li). #} | |
| 116 {% set step_nest = s.get('nest_level', 0) %} | |
| 117 {% if step_nest > nest_level %} | |
| 118 {% for _ in range(nest_level, step_nest - 1) %} | |
| 119 <details> | |
| 120 <summary> Nested step(s) for: {{ previous_name }}</summary> | |
| 121 <ol type="a"><li> | |
| 122 {% endfor %} | |
| 123 {% if nest_level == -1 %} | |
| 124 <ol><li> | |
| 125 {% else %} | |
| 126 <details><summary> Nested step(s) for: {{ previous_name }}</summary><ol><li> | |
| 127 {% endif %} | |
| 128 {% elif step_nest == nest_level %} | |
| 129 </li><li> | |
| 130 {% elif step_nest < nest_level %} | |
| 131 {% for _ in range(step_nest, nest_level) %} | |
| 132 </li></ol></details> | |
| 133 {% endfor %} | |
| 134 <li> | |
| 135 {% endif %} | |
| 136 {% set nest_level = step_nest %} | |
| 137 | |
| 138 <div class="{{ s.css_class }} result"> | |
| 139 <div class="bbp_placeholder" | |
| 140 id="{{ b.getProperty('mastername') }}:{{ b.getBuilder().getName() }}:{{ | |
| 141 b.getNumber() }}:{{ s.name|replace('/', '_') }}"></div> | |
| 142 <a href="{{ s.link }}">{{ s.name }}</a> | |
| 143 {% set previous_name = s.name %} | |
| 144 {{ s.text }} <span style="float:right">{{ '( ' + s.time_to_run + ' )' i
f s.time_to_run else '' }}</span> | |
| 145 </div> | |
| 146 | |
| 147 <ul> | |
| 148 {% set item_class = cycler('alt', '') %} | |
| 149 {% for l in s.logs %} | |
| 150 <li class="{{ item_class.next() }}"><a href="{{ l.link }}">{{ l.name }}</a
></li> | |
| 151 {% else %} | |
| 152 <li class="{{ item_class.next() }}">- no logs -</li> | |
| 153 {% endfor %} | |
| 154 | |
| 155 {% for u in s.urls %} | |
| 156 <li class="{{ item_class.next() }}"><a href="{{ u.url }}">{{ u.logname }}<
/a></li> | |
| 157 {% endfor %} | |
| 158 </ul> | |
| 159 {% endfor %} | |
| 160 | |
| 161 {# Close out all open indentation sections. #} | |
| 162 {% for _ in range(-1, nest_level) %} | |
| 163 </li></ol> | |
| 164 {% endfor %} | |
| 165 | |
| 166 </div> | |
| 167 <div class="column"> | |
| 168 | |
| 169 <h2>Build Properties:</h2> | |
| 170 | |
| 171 <table class="info BuildProperties" width="100%"> | |
| 172 <tr><th>Name</th><th>Value</th><th>Source</th></tr> | |
| 173 | |
| 174 {% for p in properties %} | |
| 175 <tr class="{{ loop.cycle('alt', '') }}"> | |
| 176 <td class="left">{{ p.name|e }}</td> | |
| 177 <td class="middle"><abbr title=" | |
| 178 {% if p.short_value %} | |
| 179 {{ p.short_value|e }} .. [property value too long] | |
| 180 {% else %} | |
| 181 {{ p.value|e }} | |
| 182 {% endif %}"> | |
| 183 {% if p.short_value %} | |
| 184 {{ p.short_value|e }} .. [property value too long] | |
| 185 {% elif p.name == 'issue' %} | |
| 186 <a href="https://codereview.chromium.org/{{ p.value|e }}"> | |
| 187 {{ p.value|e }} | |
| 188 </a> | |
| 189 {% else %} | |
| 190 {{ p.value|e }} | |
| 191 {% endif %} | |
| 192 </abbr></td> | |
| 193 <td>{{ p.source|e }}</td> | |
| 194 </tr> | |
| 195 {% endfor %} | |
| 196 | |
| 197 </table> | |
| 198 | |
| 199 <h2>Blamelist:</h2> | |
| 200 | |
| 201 {% if responsible_users %} | |
| 202 <ol> | |
| 203 {% for u in responsible_users %} | |
| 204 <li class="{{ loop.cycle('alt', '') }}">{{ u|user }}</li> | |
| 205 {% endfor %} | |
| 206 </ol> | |
| 207 {% else %} | |
| 208 <p>no responsible users</p> | |
| 209 {% endif %} | |
| 210 | |
| 211 | |
| 212 <h2>Timing:</h2> | |
| 213 <table class="info" width="100%"> | |
| 214 <tr class="alt"><td class="left">Start</td><td>{{ start }}</td></tr> | |
| 215 {% if end %} | |
| 216 <tr><td class="left">End</td><td>{{ end }}</td></tr> | |
| 217 {% endif %} | |
| 218 <tr {{ 'class="alt"' if end else '' }}><td class="left">Elapsed</td><td>{{ ela
psed }}</td></tr> | |
| 219 </table> | |
| 220 | |
| 221 {% if authz.advertiseAction('forceBuild') %} | |
| 222 <h3>Resubmit Build:</h3> | |
| 223 {{ forms.rebuild_build(build_url+"/rebuild", authz, exactly, ss) }} | |
| 224 {% endif %} | |
| 225 | |
| 226 </div> | |
| 227 | |
| 228 <br style="clear:both"/> | |
| 229 | |
| 230 {% if ss.changes %} | |
| 231 <div class="column"> | |
| 232 <h2>All Changes:</h2> | |
| 233 <ol> | |
| 234 {% for c in ss.changes %} | |
| 235 <li><h3>Change #{{ c.number }}</h3> | |
| 236 {{ change(c.asDict()) }} | |
| 237 </li> | |
| 238 {% else %} | |
| 239 <li>no changes</li> | |
| 240 {% endfor %} | |
| 241 </ol> | |
| 242 </div> | |
| 243 {% endif %} | |
| 244 | |
| 245 {% endblock %} | |
| OLD | NEW |