[zorg] r179197 - Added special build.html template file to llvmlab so that links in properties render as html links.
Michael Gottesman
mgottesman at apple.com
Wed Apr 10 11:23:21 PDT 2013
Author: mgottesman
Date: Wed Apr 10 13:23:21 2013
New Revision: 179197
URL: http://llvm.org/viewvc/llvm-project?rev=179197&view=rev
Log:
Added special build.html template file to llvmlab so that links in properties render as html links.
Added:
zorg/trunk/buildbot/llvmlab/master/templates/
zorg/trunk/buildbot/llvmlab/master/templates/build.html
Added: zorg/trunk/buildbot/llvmlab/master/templates/build.html
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/buildbot/llvmlab/master/templates/build.html?rev=179197&view=auto
==============================================================================
--- zorg/trunk/buildbot/llvmlab/master/templates/build.html (added)
+++ zorg/trunk/buildbot/llvmlab/master/templates/build.html Wed Apr 10 13:23:21 2013
@@ -0,0 +1,246 @@
+{% extends "layout.html" %}
+{% import 'forms.html' as forms %}
+{% from "change_macros.html" import change with context %}
+
+{% block content %}
+
+<h1>
+Builder <a href="{{ path_to_builder }}">{{ b.getBuilder().getName() }}</a>
+Build #{{ b.getNumber() }}
+</h1>
+
+<div class="column">
+
+{% if not b.isFinished() %}
+ <h2>Build In Progress:</h2>
+
+ {% if when_time %}
+ <p>ETA: {{ when_time }} [{{ when }}]</p>
+ {% endif %}
+
+ {{ current_step }}
+
+ {% if authz.advertiseAction('stopBuild', request) %}
+ <h2>Stop Build</h2>
+ {{ forms.stop_build(build_url+"/stop", authz, on_all=False, short=False, label='This Build') }}
+ {% endif %}
+{% else %}
+ <h2>Results:</h2>
+
+ <p class="{{ result_css }} result">
+ {{ b.getText()|join(' ')|capitalize }}
+ </p>
+
+ {% if b.getTestResults() %}
+ <h3><a href="{{ tests_link }}"/></h3>
+ {% endif %}
+{% endif %}
+
+<h2>
+{% if sourcestamps|count == 1 %}
+SourceStamp:
+{% else %}
+SourceStamps:
+{% endif %}
+</h2>
+
+{% for ss in sourcestamps %}
+<h3>{{ ss.codebase }}</h3>
+ <table class="info" width="100%">
+ {% set ss_class = cycler('alt','') %}
+
+ {% if ss.project %}
+ <tr class="{{ ss_class.next() }}"><td class="left">Project</td><td>{{ ss.project|projectlink }}</td></tr>
+ {% endif %}
+
+ {% if ss.repository %}
+ <tr class="{{ ss_class.next() }}"><td class="left">Repository</td><td>{{ ss.repository|repolink }}</td></tr>
+ {% endif %}
+
+ {% if ss.branch %}
+ <tr class="{{ ss_class.next() }}"><td class="left">Branch</td><td>{{ ss.branch|e }}</td></tr>
+ {% endif %}
+
+ {% if ss.revision %}
+ <tr class="{{ ss_class.next() }}"><td class="left">Revision</td><td>{{ ss.revision|revlink(ss.repository) }}</td></tr>
+ {% endif %}
+
+ {% if got_revisions[ss.codebase] %}
+ <tr class="{{ ss_class.next() }}"><td class="left">Got Revision</td><td>{{ got_revisions[ss.codebase]|revlink(ss.repository) }}</td></tr>
+ {% endif %}
+
+ {% if ss.patch %}
+ <tr class="{{ ss_class.next() }}"><td class="left">Patch</td><td>YES</td></tr>
+ {% endif %}
+
+ {% if ss.changes %}
+ <tr class="{{ ss_class.next() }}"><td class="left">Changes</td><td><a href="#changes-{{ ss.codebase }}">{{ ss.changes|count }} change{{ 's' if ss.changes|count > 1 else '' }}</a></td></tr>
+ {% endif %}
+
+ {% if not ss.branch and not ss.revision and not ss.patch and not ss.changes %}
+ <tr class="{{ ss_class.next() }}"><td class="left" colspan="2">Build of most recent revision</td></tr>
+ {% endif %}
+ </table>
+{% endfor %}
+
+{#
+ # TODO: turn this into a table, or some other sort of definition-list
+ # that doesn't take up quite so much vertical space
+ #}
+
+<h2>BuildSlave:</h2>
+
+{% if slave_url %}
+ <a href="{{ slave_url|e }}">{{ b.getSlavename()|e }}</a>
+{% else %}
+ {{ b.getSlavename()|e }}
+{% endif %}
+
+<h2>Reason:</h2>
+<p>
+{{ b.getReason()|e }}
+</p>
+
+<h2>Steps and Logfiles:</h2>
+
+{#
+ # TODO:
+ # urls = self.original.getURLs()
+ # ex_url_class = "BuildStep external"
+ # for name, target in urls.items():
+ # text.append('[<a href="%s" class="%s">%s</a>]' %
+ # (target, ex_url_class, html.escape(name)))
+ #}
+
+<ol>
+{% for s in steps %}
+ <li>
+ <div class="{{ s.css_class }} result">
+ <a href="{{ s.link }}">{{ s.name }}</a>
+ {{ s.text }} <span style="float:right">{{ '( ' + s.time_to_run + ' )' if s.time_to_run else '' }}</span>
+ </div>
+
+ <ol>
+ {% set item_class = cycler('alt', '') %}
+ {% for l in s.logs %}
+ <li class="{{ item_class.next() }}"><a href="{{ l.link }}">{{ l.name }}</a></li>
+ {% else %}
+ <li class="{{ item_class.next() }}">- no logs -</li>
+ {% endfor %}
+
+ {% for u in s.urls %}
+ <li class="{{ item_class.next() }}"><a href="{{ u.url }}">{{ u.logname }}</a></li>
+ {% endfor %}
+ </ol>
+ </li>
+{% endfor %}
+</ol>
+
+</div>
+<div class="column">
+
+<h2>Build Properties:</h2>
+
+<table class="info" width="100%">
+<tr><th>Name</th><th>Value</th><th>Source</th></tr>
+
+{% for p in properties %}
+{% if p.source != "Force Build Form" %}
+ <tr class="{{ loop.cycle('alt', '') }}">
+ <td class="left">{{ p.name|e }}</td>
+ {% if p.short_value %}
+ <td>{{ p.short_value|e }} .. [property value too long]</td>
+ {% else %}
+ {% if p.value is not mapping %}
+ {% if p.value[:4] == "http" %}
+ <td>{{ p.value|e|replace(" ", "%20")|urlize(200)|replace("%20"," ") }}</td>
+ {% else %}
+ <td>{{ p.value|e }}</td>
+ {% endif %}
+ {% else %}
+ <td>
+ <table class="info" width="100%">
+ {%- for key, value in p.value.items() recursive %}
+ <tr><td>{{ key|e }}</td><td>{{ value|e }}</td></tr>
+ {% endfor %}
+ </table>
+ </td>
+ {% endif %}
+ {% endif %}
+ <td>{{ p.source|e }}</td>
+ </tr>
+{% endif %}
+{% endfor %}
+</table>
+<h2>Forced Build Properties:</h2>
+<table class="info" width="100%">
+<tr><th>Name</th><th>Label</th><th>Value</th></tr>
+
+{% for p in properties %}
+ {% if p.source == "Force Build Form" %}
+ <tr class="{{ loop.cycle('alt', '') }}">
+ <td class="left">{{ p.name|e }}</td>
+ <td class="left">
+ {% if p.label %}
+ {{ p.label }}
+ {% endif %}
+ </td>
+ {% if p.text %}
+ <td><textarea readonly cols="{{p.cols}}" rows="{{p.rows}}">{{ p.text|e }}</textarea></td>
+ {% else %}
+ <td>{{ p.value|e }}</td>
+ {% endif %}
+ </tr>
+ {% endif %}
+{% endfor %}
+</table>
+
+<h2>Responsible Users:</h2>
+
+{% if responsible_users %}
+ <ol>
+ {% for u in responsible_users %}
+ <li class="{{ loop.cycle('alt', '') }}">{{ u|user }}</li>
+ {% endfor %}
+ </ol>
+{% else %}
+ <p>no responsible users</p>
+{% endif %}
+
+<h2>Timing:</h2>
+<table class="info" width="100%">
+ <tr class="alt"><td class="left">Start</td><td>{{ start }}</td></tr>
+{% if end %}
+ <tr><td class="left">End</td><td>{{ end }}</td></tr>
+{% endif %}
+ <tr {{ 'class="alt"' if end else '' }}><td class="left">Elapsed</td><td>{{ elapsed }}</td></tr>
+</table>
+
+ {% if authz.advertiseAction('forceBuild', request) %}
+ <h3>Resubmit Build:</h3>
+ {{ forms.rebuild_build(build_url+"/rebuild", authz, exactly, sourcestamps[0]) }}
+ {% endif %}
+
+</div>
+
+<br style="clear:both"/>
+
+{% if has_changes %}
+ <div class="column">
+ <h2>All Changes:</h2>
+ {% for ss in sourcestamps %}
+ {% if ss.changes %}
+ <h3 id="changes-{{ ss.codebase }}"> {{ ss.codebase }}:</h3>
+ <ol>
+ {% for c in ss.changes %}
+ <li><h3>Change #{{ c.number }}</h3>
+ {{ change(c.asDict()) }}
+ </li>
+ {% endfor %}
+ </ol>
+ {% endif %}
+ {% endfor %}
+ </div>
+{% endif %}
+
+{% endblock %}
More information about the llvm-commits
mailing list