2 - Copyright (c) 2017 Vojtech Horky
5 - Redistribution and use in source and binary forms, with or without
6 - modification, are permitted provided that the following conditions
9 - - Redistributions of source code must retain the above copyright
10 - notice, this list of conditions and the following disclaimer.
11 - - Redistributions in binary form must reproduce the above copyright
12 - notice, this list of conditions and the following disclaimer in the
13 - documentation and/or other materials provided with the distribution.
14 - - The name of the author may not be used to endorse or promote products
15 - derived from this software without specific prior written permission.
17 - THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 - IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 - OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 - IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 - INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 - DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 <xsl:stylesheet version=
"1.0"
29 xmlns:
xsl=
"http://www.w3.org/1999/XSL/Transform"
30 xmlns=
"http://www.w3.org/1999/xhtml">
32 <xsl:import href=
"common.xsl" />
37 omit-xml-declaration=
"yes"
38 doctype-system=
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
39 doctype-public=
"-//W3C//DTD XHTML 1.0 Transitional//EN"
42 <xsl:key name=
"by-arch" match=
"/build/*" use=
"@arch" />
43 <xsl:key name=
"by-harbour" match=
"/build/*" use=
"@package" />
44 <xsl:key name=
"by-scenario" match=
"/build/*" use=
"@scenario" />
46 <xsl:variable name=
"LINK_TO_TOP">
47 <span class=
"back-to-top"><a href=
"#top-of-page">(back to top)
</a></span>
51 <xsl:template match=
"build">
52 <xsl:variable name=
"BUILD" select=
"." />
53 <xsl:call-template name=
"HTML_PAGE">
54 <xsl:with-param name=
"TITLE">
55 <xsl:text>HelenOS CI (build
</xsl:text>
56 <xsl:value-of select=
"@number" />
57 <xsl:text>)
</xsl:text>
59 <xsl:with-param name=
"EXTRA_HEAD">
60 <script type=
"text/javascript" language=
"JavaScript">
61 $( document ).ready(function() {
64 function showHideLog(link, target) {
65 target = $(link).parents(
"table").find(
"." + target)
66 if (target.is(
":hidden")) {
77 <xsl:with-param name=
"BODY">
80 <h1 id=
"top-of-page">HelenOS continuous integration testing
</h1>
82 Build
<xsl:value-of select=
"@number" /> from
<xsl:value-of select=
"buildinfo/@started" />
83 (
<xsl:apply-templates select=
"buildinfo" mode=
"duration" />)
86 <h2>Summary results
</h2>
87 <xsl:apply-templates select=
"." mode=
"html-summary-table" />
90 <div id=
"quick-links" class=
"buttonset">
93 <div class=
"quick-link-group">
94 <h3>Miscellaneous
</h3>
96 <li><a href=
"#matrix">Summary matrix
</a></li>
97 <li><a href=
"#failures">List of failed tasks
</a></li>
98 <xsl:if test=
"helenos-build">
99 <li><a href=
"#helenos">HelenOS
</a></li>
104 <xsl:if test=
"count(*[@arch]) > 0">
105 <div class=
"quick-link-group">
106 <h3>Architectures
</h3>
108 <xsl:for-each select=
"*[@arch and count(. | key('by-arch', @arch)[parent::build = $BUILD][1]) = 1]">
109 <xsl:sort select=
"@arch" />
110 <xsl:variable name=
"ARCH" select=
"@arch" />
111 <li><a href=
"#arch-{$ARCH}"><xsl:value-of select=
"$ARCH" /></a></li>
117 <xsl:if test=
"count(*[@package]) > 0">
118 <div class=
"quick-link-group">
121 <xsl:for-each select=
"*[@package and count(. | key('by-harbour', @package)[parent::build = $BUILD][1]) = 1]">
122 <xsl:sort select=
"@package" />
123 <xsl:variable name=
"PKG" select=
"@package" />
124 <li><a href=
"#harbour-{$PKG}"><xsl:value-of select=
"$PKG" /></a></li>
130 <xsl:if test=
"count(*[@scenario]) > 0">
131 <div class=
"quick-link-group">
132 <h3>Testing scenarios
</h3>
134 <xsl:for-each select=
"*[@scenario and count(. | key('by-scenario', @scenario)[parent::build = $BUILD][1]) = 1]">
135 <xsl:sort select=
"@scenario" />
136 <xsl:variable name=
"SCENARIO" select=
"@scenario" />
137 <li><a href=
"#scenario-{$SCENARIO}"><xsl:value-of select=
"$SCENARIO" /></a></li>
145 <h2 id=
"matrix">Summary matrix
<xsl:copy-of select=
"$LINK_TO_TOP" /></h2>
146 <table class=
"matrix">
150 <xsl:for-each select=
"*[@arch and count(. | key('by-arch', @arch)[parent::build = $BUILD][1]) = 1]">
151 <xsl:sort select=
"@arch" />
153 <a href=
"#arch-{@arch}">
154 <xsl:apply-templates select=
"@arch" mode=
"architecture-with-hyphens" />
163 <a href=
"#helenos">HelenOS
</a>
165 <xsl:for-each select=
"*[@arch and count(. | key('by-arch', @arch)[parent::build = $BUILD][1]) = 1]">
166 <xsl:sort select=
"@arch" />
167 <xsl:variable name=
"ARCH" select=
"@arch" />
168 <xsl:variable name=
"RESULT" select=
"//helenos-build[@arch=$ARCH]" />
169 <td class=
"result-{$RESULT/@result}"><xsl:apply-templates select=
"$RESULT" mode=
"log-link-matrix" /></td>
172 <xsl:for-each select=
"*[@package and count(. | key('by-harbour', @package)[parent::build = $BUILD][1]) = 1]">
173 <xsl:sort select=
"@package" />
174 <xsl:variable name=
"PKG" select=
"@package" />
177 <a href=
"#harbour-{$PKG}">
178 <xsl:value-of select=
"$PKG" />
181 <xsl:for-each select=
"//*[@arch and count(. | key('by-arch', @arch)[parent::build = $BUILD][1]) = 1]">
182 <xsl:sort select=
"@arch" />
183 <xsl:variable name=
"ARCH" select=
"@arch" />
184 <xsl:variable name=
"RESULT" select=
"//harbour-build[@arch=$ARCH and @package=$PKG]" />
186 <xsl:when test=
"$RESULT">
187 <td class=
"result-{$RESULT/@result}"><xsl:apply-templates select=
"$RESULT" mode=
"log-link-matrix" /></td>
190 <td class=
"result-na">N/A
</td>
196 <xsl:for-each select=
"*[@scenario and count(. | key('by-scenario', @scenario)[parent::build = $BUILD][1]) = 1]">
197 <xsl:sort select=
"@scenario" />
198 <xsl:variable name=
"SCENARIO" select=
"@scenario" />
200 <th style=
"white-space: nowrap;">
201 <a title=
"{$SCENARIO}" href=
"#scenario-{$SCENARIO}">
202 <xsl:value-of select=
"$SCENARIO" />
205 <xsl:for-each select=
"//*[@arch and count(. | key('by-arch', @arch)[parent::build = $BUILD][1]) = 1]">
206 <xsl:sort select=
"@arch" />
207 <xsl:variable name=
"ARCH" select=
"@arch" />
208 <xsl:variable name=
"RESULT" select=
"//test[@arch=$ARCH and @scenario=$SCENARIO]" />
210 <xsl:when test=
"$RESULT">
211 <td class=
"result-{$RESULT/@result}"><xsl:apply-templates select=
"$RESULT" mode=
"log-link-matrix" /></td>
214 <td class=
"result-na">N/A
</td>
223 <h2>Miscellaneous
</h2>
224 <h3 id=
"failures">List of failed tasks
<xsl:copy-of select=
"$LINK_TO_TOP" /></h3>
226 <xsl:when test=
"count(*[@result='fail']) = 0">
227 <p>There were no failures.
</p>
233 <th width=
"25%">Task
</th>
234 <th width=
"25%">Component
</th>
235 <th width=
"20%">Architecture
</th>
236 <th width=
"20%">Log
</th>
237 <th width=
"10%">Duration
</th>
241 <xsl:for-each select=
"checkout[@result='fail']">
242 <xsl:sort select=
"@repository" />
243 <xsl:apply-templates select=
"." mode=
"html-failed-task-table-row" />
245 <xsl:apply-templates select=
"harbour-check[@result='fail']" mode=
"html-failed-task-table-row" />
246 <xsl:for-each select=
"helenos-build[@result='fail']">
247 <xsl:sort select=
"@arch" />
248 <xsl:apply-templates select=
"." mode=
"html-failed-task-table-row" />
250 <xsl:for-each select=
"harbour-fetch[@result='fail']">
251 <xsl:sort select=
"@package" />
252 <xsl:apply-templates select=
"." mode=
"html-failed-task-table-row" />
254 <xsl:for-each select=
"harbour-build[@result='fail']">
255 <xsl:sort select=
"@package" />
256 <xsl:sort select=
"@arch" />
257 <xsl:apply-templates select=
"." mode=
"html-failed-task-table-row" />
259 <xsl:for-each select=
"helenos-extra-build[@result='fail']">
260 <xsl:sort select=
"@arch" />
261 <xsl:sort select=
"@packages" />
262 <xsl:apply-templates select=
"." mode=
"html-failed-task-table-row" />
264 <xsl:for-each select=
"test[@result='fail']">
265 <xsl:sort select=
"@scenario" />
266 <xsl:sort select=
"@arch" />
267 <xsl:apply-templates select=
"." mode=
"html-failed-task-table-row" />
269 <!-- xsl:apply-templates select="*[@result='fail']" mode="html-failed-task-table-row" /-->
275 <xsl:if test=
"helenos-build">
276 <h3 id=
"helenos">HelenOS
<xsl:copy-of select=
"$LINK_TO_TOP" /></h3>
280 <th width=
"25%">Architecture
</th>
281 <th width=
"10%">Result
</th>
282 <th width=
"35%">Download
</th>
283 <th width=
"20%">Log
</th>
284 <th width=
"10%">Duration
</th>
288 <xsl:if test=
"browsable-sources-global">
289 <tr class=
"result-{browsable-sources-global/@result}">
291 <xsl:text disable-output-escaping=
"yes"><![CDATA[
—]]
></xsl:text>
294 <xsl:apply-templates select=
"browsable-sources-global" mode=
"yes-no" />
297 <xsl:apply-templates select=
"browsable-sources-global" mode=
"download" />
300 <xsl:apply-templates select=
"browsable-sources-global" mode=
"log-link" />
303 <xsl:apply-templates select=
"browsable-sources-global" mode=
"duration" />
307 <xsl:for-each select=
"helenos-build">
308 <xsl:sort select=
"@arch" />
309 <tr class=
"result-{@result}">
311 <xsl:value-of select=
"@arch" />
314 <xsl:apply-templates select=
"." mode=
"yes-no" />
317 <xsl:apply-templates select=
"." mode=
"download" />
320 <xsl:apply-templates select=
"." mode=
"log-link" />
323 <xsl:apply-templates select=
"." mode=
"duration" />
326 <xsl:apply-templates select=
"." mode=
"log-dump" />
333 <xsl:if test=
"count(*[@arch]) > 0">
334 <h2>Per-architecture details
<xsl:copy-of select=
"$LINK_TO_TOP" /></h2>
335 <xsl:for-each select=
"$BUILD/*[@arch and count(. | key('by-arch', @arch)[parent::build = $BUILD][1]) = 1]">
336 <xsl:sort select=
"@arch" />
337 <xsl:variable name=
"ARCH" select=
"@arch" />
338 <h3 id=
"arch-{$ARCH}"><xsl:value-of select=
"$ARCH" /><xsl:copy-of select=
"$LINK_TO_TOP" /></h3>
342 <th width=
"25%">Task
</th>
343 <th width=
"10%">Result
</th>
344 <th width=
"35%">Download
</th>
345 <th width=
"20%">Log
</th>
346 <th width=
"10%">Duration
</th>
350 <tr class=
"result-{$BUILD/helenos-build[@arch=$ARCH]/@result}">
353 <xsl:apply-templates select=
"$BUILD/helenos-build[@arch=$ARCH]" mode=
"yes-no" />
356 <xsl:apply-templates select=
"." mode=
"download" />
359 <xsl:apply-templates select=
"$BUILD/helenos-build[@arch=$ARCH]" mode=
"log-link" />
362 <xsl:apply-templates select=
"." mode=
"duration" />
365 <xsl:apply-templates select=
"$BUILD/helenos-build[@arch=$ARCH]" mode=
"log-dump" />
366 <xsl:for-each select=
"$BUILD/harbour-build[@arch=$ARCH]">
367 <tr class=
"result-{@result}">
368 <td><xsl:value-of select=
"@package" /></td>
370 <xsl:apply-templates select=
"." mode=
"yes-no" />
373 <xsl:apply-templates select=
"." mode=
"download" />
376 <xsl:apply-templates select=
"." mode=
"log-link" />
379 <xsl:apply-templates select=
"." mode=
"duration" />
382 <xsl:apply-templates select=
"." mode=
"log-dump" />
384 <xsl:for-each select=
"$BUILD/helenos-extra-build[@arch=$ARCH]">
385 <tr class=
"result-{@result}">
386 <td>HelenOS with
<xsl:value-of select=
"@harbours" /></td>
388 <xsl:apply-templates select=
"." mode=
"yes-no" />
391 <xsl:apply-templates select=
"." mode=
"download" />
394 <xsl:apply-templates select=
"." mode=
"log-link" />
397 <xsl:apply-templates select=
"." mode=
"duration" />
400 <xsl:apply-templates select=
"." mode=
"log-dump" />
402 <xsl:for-each select=
"$BUILD/test[@arch=$ARCH]">
403 <tr class=
"result-{@result}">
404 <td><xsl:value-of select=
"@scenario" /></td>
406 <xsl:apply-templates select=
"." mode=
"yes-no" />
409 <xsl:apply-templates select=
"." mode=
"download" />
412 <xsl:apply-templates select=
"." mode=
"log-link" />
415 <xsl:apply-templates select=
"." mode=
"duration" />
418 <xsl:apply-templates select=
"." mode=
"log-dump" />
425 <xsl:if test=
"count(*[@package]) > 0">
426 <h2>Per-harbour details
<xsl:copy-of select=
"$LINK_TO_TOP" /></h2>
427 <xsl:for-each select=
"$BUILD/*[@package and count(. | key('by-harbour', @package)[parent::build = $BUILD][1]) = 1]">
428 <xsl:sort select=
"@package" />
429 <xsl:variable name=
"PKG" select=
"@package" />
430 <h3 id=
"harbour-{$PKG}"><xsl:value-of select=
"$PKG" /><xsl:copy-of select=
"$LINK_TO_TOP" /></h3>
434 <th width=
"25%">Architecture
</th>
435 <th width=
"10%">Result
</th>
436 <th width=
"35%">Download
</th>
437 <th width=
"20%">Log
</th>
438 <th width=
"10%">Duration
</th>
442 <tr class=
"result-{$BUILD/harbour-fetch[@package=$PKG]/@result}">
443 <td><i>Tarball fetch
</i></td>
445 <xsl:apply-templates select=
"$BUILD/harbour-fetch[@package=$PKG]" mode=
"yes-no" />
448 <xsl:apply-templates select=
"." mode=
"download" />
451 <xsl:apply-templates select=
"$BUILD/harbour-fetch[@package=$PKG]" mode=
"log-link" />
454 <xsl:apply-templates select=
"." mode=
"duration" />
457 <xsl:apply-templates select=
"$BUILD/harbour-fetch[@package=$PKG]" mode=
"log-dump" />
458 <xsl:for-each select=
"$BUILD/harbour-build[@package=$PKG]">
459 <xsl:sort select=
"@arch" />
460 <tr class=
"result-{@result}">
461 <td><xsl:value-of select=
"@arch" /></td>
463 <xsl:apply-templates select=
"." mode=
"yes-no" />
466 <xsl:apply-templates select=
"." mode=
"download" />
469 <xsl:apply-templates select=
"." mode=
"log-link" />
472 <xsl:apply-templates select=
"." mode=
"duration" />
475 <xsl:apply-templates select=
"." mode=
"log-dump" />
482 <xsl:if test=
"count(*[@scenario]) > 0">
483 <h2>Per-scenario details
<xsl:copy-of select=
"$LINK_TO_TOP" /></h2>
484 <xsl:for-each select=
"$BUILD/*[@scenario and count(. | key('by-scenario', @scenario)[parent::build = $BUILD][1]) = 1]">
485 <xsl:sort select=
"@scenario" />
486 <xsl:variable name=
"SCENARIO" select=
"@scenario" />
487 <h3 id=
"scenario-{$SCENARIO}"><xsl:value-of select=
"$SCENARIO" /><xsl:copy-of select=
"$LINK_TO_TOP" /></h3>
491 <th width=
"25%">Architecture
</th>
492 <th width=
"10%">Result
</th>
493 <th width=
"35%">Download
</th>
494 <th width=
"20%">Log
</th>
495 <th width=
"10%">Duration
</th>
499 <xsl:for-each select=
"$BUILD/test[@scenario=$SCENARIO]">
500 <xsl:sort select=
"@arch" />
501 <tr class=
"result-{@result}">
502 <td><xsl:value-of select=
"@arch" /></td>
504 <xsl:apply-templates select=
"." mode=
"yes-no" />
507 <xsl:apply-templates select=
"." mode=
"download" />
510 <xsl:apply-templates select=
"." mode=
"log-link" />
513 <xsl:apply-templates select=
"." mode=
"duration" />
516 <xsl:apply-templates select=
"." mode=
"log-dump" />
529 <xsl:template match=
"@*" mode=
"architecture-with-hyphens">
530 <xsl:variable name=
"PLATFORM" select=
"substring-before(., '/')" />
531 <xsl:variable name=
"MACHINE" select=
"substring-after(., '/')" />
533 <xsl:when test=
"concat($PLATFORM, $MACHINE) = ''">
534 <xsl:value-of select=
"." />
537 <xsl:value-of select=
"$PLATFORM" />
538 <xsl:text> </xsl:text>
540 <xsl:when test=
"$MACHINE = 'beagleboardxm'">
541 <xsl:text disable-output-escaping=
"yes"><![CDATA[beagle
­board
­xm]]
></xsl:text>
543 <xsl:when test=
"$MACHINE = 'beaglebone'">
544 <xsl:text disable-output-escaping=
"yes"><![CDATA[beagle
­bone]]
></xsl:text>
546 <xsl:when test=
"$MACHINE = 'malta-be'">
547 <xsl:text disable-output-escaping=
"yes"><![CDATA[malta
­-be]]
></xsl:text>
549 <xsl:when test=
"$MACHINE = 'malta-le'">
550 <xsl:text disable-output-escaping=
"yes"><![CDATA[malta
­-le]]
></xsl:text>
552 <xsl:when test=
"$MACHINE = 'integratorcp'">
553 <xsl:text disable-output-escaping=
"yes"><![CDATA[inte
­gra
­torcp]]
></xsl:text>
555 <xsl:when test=
"$MACHINE = 'raspberrypi'">
556 <xsl:text disable-output-escaping=
"yes"><![CDATA[rasp
­ber
­ry
­pi]]
></xsl:text>
558 <xsl:when test=
"$MACHINE = 'raspberrypi'">
559 <xsl:text disable-output-escaping=
"yes"><![CDATA[rasp
­ber
­ry
­pi]]
></xsl:text>
562 <xsl:value-of select=
"$MACHINE" />
569 <xsl:template match=
"*" mode=
"yes-no">
571 <xsl:when test=
"@result = 'ok'">
572 <xsl:text>OK
</xsl:text>
574 <xsl:when test=
"@result = 'fail'">
575 <xsl:text>Failed
</xsl:text>
577 <xsl:when test=
"@result = 'skip'">
578 <xsl:text>Skipped
</xsl:text>
581 <xsl:text>?
</xsl:text>
582 <code>(
<xsl:value-of select=
"@result" />)
</code>
587 <xsl:template match=
"*" mode=
"image-link">
588 <xsl:if test=
"@image">
589 <a href=
"{@image}">Image
</a>
593 <xsl:template match=
"*" mode=
"log-link">
595 <a href=
"{@log}">View
</a>
596 <xsl:if test=
"log/logline">
597 (
<a href=
"#" onclick=
"return showHideLog(this, 'log-{generate-id(.)}');">tail
</a>)
602 <xsl:template match=
"*" mode=
"log-link-matrix">
604 <a href=
"{@log}"><xsl:apply-templates select=
"." mode=
"yes-no" /></a>
608 <xsl:template match=
"*" mode=
"duration">
609 <xsl:if test=
"@duration">
610 <xsl:variable name=
"SECONDS" select=
"@duration div 1000" />
611 <xsl:variable name=
"MINUTES" select=
"floor($SECONDS div 60)" />
612 <xsl:variable name=
"HOURS" select=
"floor($MINUTES div 60)" />
614 <xsl:when test=
"$MINUTES > 90">
615 <xsl:value-of select=
"$HOURS" /><xsl:text disable-output-escaping=
"yes"><![CDATA[
 ]]
>h
</xsl:text>
616 <xsl:value-of select=
"format-number($MINUTES - 60 * $HOURS, '#')" /><xsl:text disable-output-escaping=
"yes"><![CDATA[
 ]]
>min
</xsl:text>
618 <xsl:when test=
"$SECONDS > 90">
619 <xsl:value-of select=
"$MINUTES" /><xsl:text disable-output-escaping=
"yes"><![CDATA[
 ]]
>min
</xsl:text>
620 <xsl:value-of select=
"format-number($SECONDS - 60 * $MINUTES, '#')" /><xsl:text disable-output-escaping=
"yes"><![CDATA[
 ]]
>s
</xsl:text>
623 <xsl:value-of select=
"format-number($SECONDS, '#')" /><xsl:text disable-output-escaping=
"yes"><![CDATA[
 ]]
>s
</xsl:text>
626 <!-- (<xsl:value-of select="format-number(@duration div 1000, '#.00')" />s) -->
630 <xsl:template match=
"*" mode=
"log-dump">
631 <xsl:if test=
"count(log/logline) > 0">
632 <tr class=
"logdump log-{generate-id(.)}">
634 <pre><xsl:for-each select=
"log/logline">
635 <xsl:value-of select=
"text()" /><xsl:text>
637 </xsl:for-each></pre>
643 <xsl:template match=
"*" mode=
"download">
644 <xsl:for-each select=
"file">
645 <a href=
"{@filename}"><xsl:value-of select=
"@title" /></a>
646 <xsl:if test=
"not(last())">,
</xsl:if>
648 <xsl:if test=
"not(file)">
649 <xsl:text disable-output-escaping=
"yes"><![CDATA[
—]]
></xsl:text>
655 <xsl:template match=
"*" mode=
"html-failed-task-table-row">
656 <tr class=
"result-fail">
657 <xsl:apply-templates select=
"." mode=
"html-failed-task-table-row-inner" />
659 <xsl:apply-templates select=
"." mode=
"log-link" />
662 <xsl:apply-templates select=
"." mode=
"duration" />
665 <xsl:apply-templates select=
"." mode=
"log-dump" />
668 <xsl:template match=
"checkout" mode=
"html-failed-task-table-row-inner">
669 <td>Repository checkout
</td>
670 <td><xsl:value-of select=
"@repository" /></td>
671 <td><xsl:text disable-output-escaping=
"yes"><![CDATA[
—]]
></xsl:text></td>
674 <xsl:template match=
"harbour-check" mode=
"html-failed-task-table-row-inner">
675 <td>Harbour self-check
</td>
676 <td><xsl:text disable-output-escaping=
"yes"><![CDATA[
—]]
></xsl:text></td>
677 <td><xsl:text disable-output-escaping=
"yes"><![CDATA[
—]]
></xsl:text></td>
680 <xsl:template match=
"harbour-fetch" mode=
"html-failed-task-table-row-inner">
681 <td>Tarball fetch
</td>
682 <td><xsl:value-of select=
"@package" /></td>
683 <td><xsl:text disable-output-escaping=
"yes"><![CDATA[
—]]
></xsl:text></td>
686 <xsl:template match=
"helenos-build" mode=
"html-failed-task-table-row-inner">
688 <td><xsl:text disable-output-escaping=
"yes"><![CDATA[
—]]
></xsl:text></td>
689 <td><xsl:value-of select=
"@arch" /></td>
692 <xsl:template match=
"harbour-build" mode=
"html-failed-task-table-row-inner">
693 <td>Harbour build
</td>
694 <td><xsl:value-of select=
"@package" /></td>
695 <td><xsl:value-of select=
"@arch" /></td>
698 <xsl:template match=
"helenos-extra-build" mode=
"html-failed-task-table-row-inner">
699 <td>Extras build
</td>
700 <td>HelenOS and
<xsl:value-of select=
"@packages" /></td>
701 <td><xsl:value-of select=
"@arch" /></td>
704 <xsl:template match=
"test" mode=
"html-failed-task-table-row-inner">
706 <td><xsl:value-of select=
"@scenario" /></td>
707 <td><xsl:value-of select=
"@arch" /></td>
710 <xsl:template match=
"*" mode=
"html-failed-task-table-row-inner">
711 <td><xsl:value-of select=
"name()" /></td>
712 <td><xsl:text disable-output-escaping=
"yes"><![CDATA[
—]]
></xsl:text></td>
713 <td><xsl:text disable-output-escaping=
"yes"><![CDATA[
—]]
></xsl:text></td>