1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
|
{% from 'build_line.html' import build_table %}
{% import 'forms.html' as forms %}
{% extends "layout.html" %}
{% block content %}
<h1>Builder {{ name }}</h1>
<p>(<a href="{{ path_to_root }}waterfall?show={{ name }}">view in waterfall</a>)</p>
<div class="column">
{% if current %}
<h2>Current Builds:</h2>
<ul>
{% for b in current %}
<li><a href="{{ b.link }}">{{ b.num }}</a>
{% if b.when %}
ETA: {{ b.when_time }} [{{ b.when }}]
{% endif %}
{{ b.current_step }}
{% if authz.advertiseAction('stopBuild', request) %}
{{ forms.stop_build(b.stop_url, authz, on_all=False, short=True, label='Build') }}
{% endif %}
</li>
{% endfor %}
</ul>
{% else %}
<h2>No current builds</h2>
{% endif %}
{% if pending %}
<h2>Pending Build Requests:</h2>
<ul>
{% for b in pending %}
<li><small>({{ b.when }}, waiting {{ b.delay }})</small>
{% if authz.advertiseAction('cancelPendingBuild', request) %}
{{ forms.cancel_pending_build(builder_url+"/cancelbuild", authz, short=True, id=b.id) }}
{% endif %}
{% if b.num_changes < 4 %}
{% for c in b.changes %}{{ c.revision|shortrev(c.repo) }}
(<a href="{{ c.url }}">{{ c.who }}</a>){% if not loop.last %},{% endif %}
{% endfor %}
{% else %}
({{ b.num_changes }} changes)
{% endif %}
{% if 'owner' in b.properties %}
<b>Forced build</b>
by {{b.properties['owner'][0]}}
<small>{{b.properties['reason'][0]}}</small>
{% endif %}
</li>
{% endfor %}
</ul>
{% if authz.advertiseAction('cancelPendingBuild', request) %}
{{ forms.cancel_pending_build(builder_url+"/cancelbuild", authz, short=False, id='all') }}
{% endif %}
{% else %}
<h2>No Pending Build Requests</h2>
{% endif %}
<h2>Recent Builds:</h2>
{{ build_table(recent) }}
( Show: <a href="{{ builder_url }}">default</a>
{% for count in [25, 50, 100, 200] %}
<a href="{{ builder_url }}?numbuilds={{ count }}">{{ count }}</a>
{% endfor %})
</div>
<div class="column">
<h2>Buildslaves:</h2>
<table class="info">
{% if slaves %}
<tr>
<th>Name</th>
<th>Status</th>
<th>Admin</th>
</tr>
{% endif %}
{% for s in slaves %}
<tr class="{{ loop.cycle('alt', '') }}">
<td><b><a href="{{ s.link|e }}">{{ s.name|e }}</a></b></td>
{% if s.connected %}
<td class="idle">connected</td>
<td>{{ s.admin|email if s.admin else ""}}</td>
{% else %}
<td class="offline">offline</td>
<td/>
{% endif %}
</tr>
{% else %}
<td>no slaves attached</td>
{% endfor %}
</table>
{% if authz.advertiseAction('pingBuilder', request) %}
<h2>Ping slaves</h2>
{{ forms.ping_builder(builder_url+"/ping", authz) }}
{% endif %}
{% if authz.advertiseAction('forceBuild', request) and force_schedulers != {} %}
<h2>Force build</h2>
{{ forms.force_build(builder_url+"/force", authz, request, False, force_schedulers=force_schedulers,default_props=default_props) }}
{% endif %}
</div>
{% endblock %}
|