{% extends "layout.html" %} {% import 'forms.html' as forms %} {% from "change_macros.html" import change with context %} {% block content %}

Builder {{ b.getBuilder().getName() }} Build #{{ b.getNumber() }}

{% if not b.isFinished() %}

Build In Progress:

{% if when_time %}

ETA: {{ when_time }} [{{ when }}]

{% endif %} {{ current_step }} {% if authz.advertiseAction('stopBuild', request) %}

Stop Build

{{ forms.stop_build(build_url+"/stop", authz, on_all=False, short=False, label='This Build') }} {% endif %} {% else %}

Results:

{{ b.getText()|join(' ')|capitalize }}

{% if b.getTestResults() %}

{% endif %} {% endif %}

{% if sourcestamps|count == 1 %} SourceStamp: {% else %} SourceStamps: {% endif %}

{% for sourcestamps_row in sourcestamps | batch(3, ' ') %}
{% for ss in sourcestamps_row %}

{{ ss.codebase }}

{% set ss_class = cycler('alt','') %} {% if ss.project %} {% endif %} {% if ss.repository %} {% endif %} {% if ss.branch %} {% endif %} {% if ss.revision %} {% endif %} {% if got_revisions[ss.codebase] %} {% endif %} {% if ss.patch %} {% endif %} {% if ss.changes %} {% endif %} {% if not ss.branch and not ss.revision and not ss.patch and not ss.changes %} {% endif %}
Project{{ ss.project|projectlink }}
Repository{{ ss.repository|repolink }}
Branch{{ ss.branch|e }}
Revision{{ ss.revision|revlink(ss.repository) }}
Got Revision{{ got_revisions[ss.codebase]|revlink(ss.repository) }}
PatchYES
Changes{{ ss.changes|count }} change{{ 's' if ss.changes|count > 1 else '' }}
Build of most recent revision
{% endfor %}
{% endfor %} {# # TODO: turn this into a table, or some other sort of definition-list # that doesn't take up quite so much vertical space #}

BuildSlave:

{% if slave_url %}
{{ b.getSlavename()|e }} {% else %} {{ b.getSlavename()|e }} {% endif %}

Reason:

{{ b.getReason()|e }}

Steps and Logfiles:

{# # TODO: # urls = self.original.getURLs() # ex_url_class = "BuildStep external" # for name, target in urls.items(): # text.append('[%s]' % # (target, ex_url_class, html.escape(name))) #}
    {% for s in steps %}
  1. {{ s.name }} {{ s.text }}   {{ '( ' + s.time_to_run + ' )' if s.time_to_run else '' }}
      {% set item_class = cycler('alt', '') %} {% for l in s.logs %}
    1. {{ l.name }}
    2. {% else %}
    3. - no logs -
    4. {% endfor %} {% for u in s.urls %}
    5. {{ u.logname }}
    6. {% endfor %}
  2. {% endfor %}

Build Properties:

{% for p in properties %} {% if p.source != "Force Build Form" %} {% if p.short_value %} {% else %} {% if p.value is not mapping %} {% else %} {% endif %} {% endif %} {% endif %} {% endfor %}
NameValueSource
{{ p.name|e }}{{ p.short_value|e }} .. [property value too long]{{ p.value|e }} {%- for key, value in p.value.items() recursive %} {% endfor %}
{{ key|e }}{{ value|e }}
{{ p.source|e }}

Forced Build Properties:

{% for p in properties %} {% if p.source == "Force Build Form" %} {% if p.text %} {% else %} {% endif %} {% endif %} {% endfor %}
NameLabelValue
{{ p.name|e }} {% if p.label %} {{ p.label }} {% endif %} {{ p.value|e }}

Responsible Users:

{% if responsible_users %}
    {% for u in responsible_users %}
  1. {{ u|user }}
  2. {% endfor %}
{% else %}

no responsible users

{% endif %}

Timing:

{% if end %} {% endif %}
Start{{ start }}
End{{ end }}
Elapsed{{ elapsed }}
{% if authz.advertiseAction('forceBuild', request) %}

Resubmit Build:

{{ forms.rebuild_build(build_url+"/rebuild", authz, sourcestamps[0]) }} {% endif %}

{% if has_changes %}

All Changes:

{% for ss in sourcestamps %} {% if ss.changes %}

{{ ss.codebase }}:

    {% for c in ss.changes %}
  1. Change #{{ c.number }}

    {{ change(c.asDict()) }}
  2. {% endfor %}
{% endif %} {% endfor %}
{% endif %} {% endblock %}