1 | <!DOCTYPE html |
---|
2 | PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |
---|
3 | "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
---|
4 | <html xmlns="http://www.w3.org/1999/xhtml" |
---|
5 | xmlns:xi="http://www.w3.org/2001/XInclude" |
---|
6 | xmlns:py="http://genshi.edgewall.org/"> |
---|
7 | <xi:include href="layout.html" /> |
---|
8 | <xi:include href="macros.html" /> |
---|
9 | <head> |
---|
10 | <title>$title</title> |
---|
11 | <script type="text/javascript"> |
---|
12 | jQuery(document).ready(function($){ |
---|
13 | $("table.tests tr.failed th .fixture").enableFolding(true); |
---|
14 | }); |
---|
15 | </script> |
---|
16 | </head> |
---|
17 | <body> |
---|
18 | <div id="content" class="build"> |
---|
19 | <h1>$title</h1> |
---|
20 | <div class="step-toc"><h4 id="step-toc-qj">Build steps</h4><ol> |
---|
21 | <py:for each="step in build.steps"> |
---|
22 | <li class="${step.failed and 'failed' or 'success'}"><a |
---|
23 | href="#step_${step.name}">$step.name</a></li> |
---|
24 | </py:for></ol> |
---|
25 | </div> |
---|
26 | <dl id="overview" py:with="slave = build.slave"> |
---|
27 | <dt class="config">Configuration:</dt> |
---|
28 | <dd class="config"> |
---|
29 | <a href="$build.config.href">$build.config.name</a> |
---|
30 | </dd> |
---|
31 | <dt class="platform">Platform:</dt> |
---|
32 | <dd class="platform"> |
---|
33 | $build.platform |
---|
34 | </dd> |
---|
35 | <dt class="trigger">Triggered by:</dt> |
---|
36 | <dd class="trigger"> |
---|
37 | Changeset <a href="$build.chgset_href">[$build.display_rev]</a> by |
---|
38 | ${format_author(build.chgset_author)} |
---|
39 | </dd> |
---|
40 | <dt class="slave">Built by:</dt> |
---|
41 | <dd class="slave"> |
---|
42 | <code>$slave.name</code> ($slave.ipnr) |
---|
43 | </dd> |
---|
44 | <dt class="os">Operating system:</dt> |
---|
45 | <dd>$slave.os_name $slave.os_version ($slave.os_family)</dd> |
---|
46 | <py:if test="slave.machine"><dt class="machine">Hardware:</dt> |
---|
47 | <dd class="machine"> |
---|
48 | $slave.machine |
---|
49 | <py:if test="slave.processor"> ($slave.processor)</py:if> |
---|
50 | </dd></py:if> |
---|
51 | <dt class="time"> |
---|
52 | ${build.stopped and 'Started:' or 'Building since:'} |
---|
53 | </dt> |
---|
54 | <dd class="time">$build.started ($build.started_delta ago)</dd> |
---|
55 | <py:if test="build.stopped"><dt class="time">Stopped:</dt> |
---|
56 | <dd class="time">$build.stopped ($build.stopped_delta ago)</dd></py:if> |
---|
57 | <dt class="duration">Duration:</dt> |
---|
58 | <dd class="duration">$build.duration</dd> |
---|
59 | </dl> |
---|
60 | <div py:if="build.can_delete" class="buttons"> |
---|
61 | <form method="post" action=""><div> |
---|
62 | <input type="hidden" name="action" value="invalidate" /> |
---|
63 | <input type="submit" value="Invalidate build" /> |
---|
64 | </div></form> |
---|
65 | ${attach_file_form(build.attachments)} |
---|
66 | </div> |
---|
67 | ${list_of_attachments(build.attachments, compact=True)} |
---|
68 | <py:for each="step in build.steps"> |
---|
69 | <h2 class="step" id="step_${step.name}">$step.name ($step.duration)</h2> |
---|
70 | <div py:if="step.errors" class="errors"> |
---|
71 | <h3>Errors</h3> |
---|
72 | <ul> |
---|
73 | <li py:for="error in step.errors">$error</li> |
---|
74 | </ul> |
---|
75 | </div> |
---|
76 | <p>$step.description</p> |
---|
77 | <div id="${step.name}_tabs"> |
---|
78 | <div class="tab"> |
---|
79 | <h3>Log</h3> |
---|
80 | <div class="log"><py:for each="item in step.log"><code class="$item.level">$item.message</code><br /></py:for></div> |
---|
81 | </div> |
---|
82 | <div py:for="report in [r for r in step.reports if r.template]" |
---|
83 | class="tab report $report.category"> |
---|
84 | <xi:include href="$report.template" py:with="data = report.data" /> |
---|
85 | </div> |
---|
86 | </div> |
---|
87 | <script type="text/javascript"> |
---|
88 | makeTabSet(document.getElementById("${step.name}_tabs")); |
---|
89 | </script></py:for> |
---|
90 | </div> |
---|
91 | </body> |
---|
92 | </html> |
---|