3 Copyright (c) 2003-2010, Andrew Dunstan
5 See accompanying License file for license details
10 perl = '/img/camel.png',
11 python = '/img/python.png',
12 debug = '/img/bug.png',
13 pam => '/img/pam.png',
14 cassert => '/img/cassert.png',
15 openssl => '/img/ssl_icon.gif',
16 nls => '/img/translateicon.gif',
17 krb5 => '/img/krb.gif',
18 tcl => '/img/tcl.png',
19 vpath => '/img/vpath.png',
20 xml => '/img/xml.png',
21 'thread-safety' => '/img/threads.gif',
22 'integer-datetimes' = '/img/days.png',
23 git => '/img/git.png',
26 [%- BLOCK img ; IF flag == 'depend' or flag == 'gnu-ld' ; ; ELSIF flag_imgs.$flag %]<img src="[% flag_imgs.$flag %]" title="[% flag %]" alt="[% flag %]" height="16" width="16" class="inline" align="bottom" /> [% ELSE %][%#
29 [%- BLOCK sysnotes ; IF row.sys_notes %]<img src="/img/notes.png" height="16" width="16" title="[% row.sys_notes_ts.replace(' .*','') | html %]: [% row.sys_notes | html %]" />
30 [%- ELSE %] [% END ; END -%]
31 [%- BLOCK cl %] class="[% SWITCH bgfor.replace('-.*','') -%]
32 [%- CASE 'OK' %]pass[% CASE 'ContribCheck' %]warn[% CASE [ 'Check' 'InstallCheck' ] %]warnx[% CASE %]fail[% END %]"
35 title = 'PostgreSQL BuildFarm Recent Failures'
37 pagebutton = 'failures'
39 <h1>PostgreSQL BuildFarm Recent Failures</h1>
41 Shown here are build failures that occurred in the last 90 days.
44 Use the farm member link for history of that member
45 on the relevant branch.
50 <li [% IF sortby != 'name' && sortby != 'namenobranch' %] id='thismenu' [% END %]><a href="/cgi-bin/show_failures.pl" title="Sort By Branch, Date">Sort By Branch, Date</a></li>
51 <li [% IF sortby == 'name' %] id='thismenu' [% END %]><a href="/cgi-bin/show_failures.pl?sortby=name" title="Sort By Branch, Name">Sort By Branch, Name</a></li>
52 <li [% IF sortby == 'namenobranch' %] id='thismenu' [% END %]><a href="/cgi-bin/show_failures.pl?sortby=namenobranch" title="Sort By Name">Sort By Name</a></li>
56 <table><tr><th class="head" rowspan="2">Legend</th>
57 [% FOREACH flagset IN flag_imgs %]
58 <td><img src="[% flagset.value %]" title="[% flagset.key %]" alt="[% flagset.key %]" height="16" width="16" class="inline" align="center"/> = [% flagset.key %]</td>
59 [% IF loop.count == 7 %]</tr><tr>[% END %]
63 <table cellspacing="0">
65 [% IF sortby == 'namenobranch' %]
66 <tr><th colspan="2">Alias</th><th>Branch</th><th>System</th><th>Status</th><th>Flags</th></tr>
68 [% FOREACH row IN statrows %]
69 [% IF row.branch != brch && sortby != 'namenobranch' ; brch = row.branch %]
70 <tr><th class="head" colspan="5">Branch: [% brch %]</th></tr>
71 <tr><th colspan="2">Alias</th><th>System</th><th>Status</th><th>Flags</th></tr>
73 <tr [% PROCESS cl bgfor=row.stage %]>
74 <td [% PROCESS cl bgfor=row.current_stage %]><a
75 href="show_history.pl?nm=[% row.sysname %]&br=[% row.branch %]"
77 >[% row.sysname %]</a></td>
78 <td>[% PROCESS sysnotes %]</td>
79 [% IF sortby == 'namenobranch' %]<td>[% row.branch %]</td>[% END %]
80 <td><span class="opsys">[% row.operating_system %]
81 [% row.os_version %]</span> <span class="compiler">
83 [% row.compiler_version %]</span> <span class="arch">
84 [%- row.architecture %]</span></td>
86 [%- row.when_ago | replace('\s',' ') %] ago
88 <a href="show_log.pl?nm=
89 [%- row.sysname %]&dt=
90 [%- row.snapshot | uri %]">
91 [%- IF row.stage != 'OK' %]Details[% ELSE %]Config[% END -%]</a></td>
93 <td class="failflags">[% FOREACH flag IN row.build_flags.split().sort() ; PROCESS img ; END %]</td>