| 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 </h1> | |
| 11 | |
| 12 <div class="column"> | |
| 13 | |
| 14 {% if not b.isFinished() %} | |
| 15 <h2>Build In Progress:</h2> | |
| 16 | |
| 17 {% if when_time %} | |
| 18 <p>ETA: {{ when_time }} [{{ when }}]</p> | |
| 19 {% endif %} | |
| 20 | |
| 21 {{ current_step }} | |
| 22 | |
| 23 {% if authz.advertiseAction('stopBuild') %} | |
| 24 <h2>Stop Build</h2> | |
| 25 {{ forms.stop_build(build_url+"/stop", authz, on_all=False, short=False, lab
el='This Build') }} | |
| 26 {% endif %} | |
| 27 {% else %} | |
| 28 <h2>Results:</h2> | |
| 29 | |
| 30 <p class="{{ result_css }} result"> | |
| 31 {{ b.getText()|join(' ')|capitalize }} | |
| 32 </p> | |
| 33 | |
| 34 {% if b.getTestResults() %} | |
| 35 <h3><a href="{{ tests_link }}"/></h3> | |
| 36 {% endif %} | |
| 37 {% endif %} | |
| 38 | |
| 39 <h2>SourceStamp:</h2> | |
| 40 | |
| 41 <table class="info" width="100%"> | |
| 42 {% set ss_class = cycler('alt','') %} | |
| 43 | |
| 44 {% if ss.project %} | |
| 45 <tr class="{{ ss_class.next() }}"><td class="left">Project</td><td>{{ ss.proje
ct|projectlink }}</td></tr> | |
| 46 {% endif %} | |
| 47 | |
| 48 {% if ss.repository %} | |
| 49 <tr class="{{ ss_class.next() }}"><td class="left">Repository</td><td>{{ ss.re
pository|repolink }}</td></tr> | |
| 50 {% endif %} | |
| 51 | |
| 52 {% if ss.branch %} | |
| 53 <tr class="{{ ss_class.next() }}"><td class="left">Branch</td><td>{{ ss.branch
|e }}</td></tr> | |
| 54 {% endif %} | |
| 55 | |
| 56 {% if ss.revision %} | |
| 57 <tr class="{{ ss_class.next() }}"><td class="left">Revision</td><td>{{ ss.revi
sion|revlink(ss.repository) }}</td></tr> | |
| 58 {% endif %} | |
| 59 | |
| 60 {% if got_revision %} | |
| 61 <tr class="{{ ss_class.next() }}"><td class="left">Got Revision</td><td>{{ got
_revision|revlink(ss.repository) }}</td></tr> | |
| 62 {% endif %} | |
| 63 | |
| 64 {% if ss.patch %} | |
| 65 <tr class="{{ ss_class.next() }}"><td class="left">Patch</td><td>YES</td></tr> | |
| 66 {% endif %} | |
| 67 | |
| 68 {% if ss.changes %} | |
| 69 <tr class="{{ ss_class.next() }}"><td class="left">Changes</td><td>see below</
td></tr> | |
| 70 {% endif %} | |
| 71 | |
| 72 {% if most_recent_rev_build %} | |
| 73 <tr class="{{ ss_class.next() }}"><td class="left" colspan="2">Build of most r
ecent revision</td></tr> | |
| 74 {% endif %} | |
| 75 | |
| 76 </table> | |
| 77 | |
| 78 {# | |
| 79 # TODO: turn this into a table, or some other sort of definition-list | |
| 80 # that doesn't take up quite so much vertical space | |
| 81 #} | |
| 82 | |
| 83 <h2>BuildSlave:</h2> | |
| 84 | |
| 85 {% if slave_url %} | |
| 86 <a href="{{ slave_url|e }}">{{ b.getSlavename()|e }}</a> | |
| 87 {% else %} | |
| 88 {{ b.getSlavename()|e }} | |
| 89 {% endif %} | |
| 90 | |
| 91 <h2>Reason:</h2> | |
| 92 <p> | |
| 93 {{ b.getReason()|e }} | |
| 94 </p> | |
| 95 | |
| 96 <h2>Steps and Logfiles:</h2> | |
| 97 | |
| 98 {# | |
| 99 # TODO: | |
| 100 # urls = self.original.getURLs() | |
| 101 # ex_url_class = "BuildStep external" | |
| 102 # for name, target in urls.items(): | |
| 103 # text.append('[<a href="%s" class="%s">%s</a>]' % | |
| 104 # (target, ex_url_class, html.escape(name))) | |
| 105 #} | |
| 106 | |
| 107 <ol> | |
| 108 {% for s in steps %} | |
| 109 <li> | |
| 110 <div class="{{ s.css_class }} result"> | |
| 111 <a href="{{ s.link }}">{{ s.name }}</a> | |
| 112 {{ s.text }} <span style="float:right">{{ '( ' + s.time_to_run + ' )'
if s.time_to_run else '' }}</span> | |
| 113 </div> | |
| 114 | |
| 115 <ol> | |
| 116 {% set item_class = cycler('alt', '') %} | |
| 117 {% for l in s.logs %} | |
| 118 <li class="{{ item_class.next() }}"><a href="{{ l.link }}">{{ l.name }}<
/a></li> | |
| 119 {% else %} | |
| 120 <li class="{{ item_class.next() }}">- no logs -</li> | |
| 121 {% endfor %} | |
| 122 | |
| 123 {% for u in s.urls %} | |
| 124 <li class="{{ item_class.next() }}"><a href="{{ u.url }}">{{ u.logname }
}</a></li> | |
| 125 {% endfor %} | |
| 126 </ol> | |
| 127 </li> | |
| 128 {% endfor %} | |
| 129 </ol> | |
| 130 | |
| 131 </div> | |
| 132 <div class="column"> | |
| 133 | |
| 134 <h2>Build Properties:</h2> | |
| 135 | |
| 136 <table class="info BuildProperties" width="100%"> | |
| 137 <tr><th>Name</th><th>Value</th><th>Source</th></tr> | |
| 138 | |
| 139 {% for p in properties %} | |
| 140 <tr class="{{ loop.cycle('alt', '') }}"> | |
| 141 <td class="left">{{ p.name|e }}</td> | |
| 142 <td class="middle"><abbr title=" | |
| 143 {% if p.short_value %} | |
| 144 {{ p.short_value|e }} .. [property value too long] | |
| 145 {% else %} | |
| 146 {{ p.value|e }} | |
| 147 {% endif %}"> | |
| 148 {% if p.short_value %} | |
| 149 {{ p.short_value|e }} .. [property value too long] | |
| 150 {% else %} | |
| 151 {{ p.value|e }} | |
| 152 {% endif %} | |
| 153 </abbr></td> | |
| 154 <td>{{ p.source|e }}</td> | |
| 155 </tr> | |
| 156 {% endfor %} | |
| 157 | |
| 158 </table> | |
| 159 | |
| 160 <h2>Blamelist:</h2> | |
| 161 | |
| 162 {% if responsible_users %} | |
| 163 <ol> | |
| 164 {% for u in responsible_users %} | |
| 165 <li class="{{ loop.cycle('alt', '') }}">{{ u|user }}</li> | |
| 166 {% endfor %} | |
| 167 </ol> | |
| 168 {% else %} | |
| 169 <p>no responsible users</p> | |
| 170 {% endif %} | |
| 171 | |
| 172 | |
| 173 <h2>Timing:</h2> | |
| 174 <table class="info" width="100%"> | |
| 175 <tr class="alt"><td class="left">Start</td><td>{{ start }}</td></tr> | |
| 176 {% if end %} | |
| 177 <tr><td class="left">End</td><td>{{ end }}</td></tr> | |
| 178 {% endif %} | |
| 179 <tr {{ 'class="alt"' if end else '' }}><td class="left">Elapsed</td><td>{{ ela
psed }}</td></tr> | |
| 180 </table> | |
| 181 | |
| 182 {% if authz.advertiseAction('forceBuild') %} | |
| 183 <h3>Resubmit Build:</h3> | |
| 184 {{ forms.rebuild_build(build_url+"/rebuild", authz, exactly, ss) }} | |
| 185 {% endif %} | |
| 186 | |
| 187 </div> | |
| 188 | |
| 189 <br style="clear:both"/> | |
| 190 | |
| 191 {% if ss.changes %} | |
| 192 <div class="column"> | |
| 193 <h2>All Changes:</h2> | |
| 194 <ol> | |
| 195 {% for c in ss.changes %} | |
| 196 <li><h3>Change #{{ c.number }}</h3> | |
| 197 {{ change(c.asDict()) }} | |
| 198 </li> | |
| 199 {% else %} | |
| 200 <li>no changes</li> | |
| 201 {% endfor %} | |
| 202 </ol> | |
| 203 </div> | |
| 204 {% endif %} | |
| 205 | |
| 206 {% endblock %} | |
| OLD | NEW |