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 |