summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/toastergui/templates/builddashboard.html
blob: 763a28d1bf49000fbf836078590e66812835f7d2 (plain)
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
119
120
121
122
123
124
125
126
{% extends "basebuildpage.html" %}
{% load humanize %}
{% load projecttags %}
{% block localbreadcrumb %}
<li>Dashboard</li>
{% endblock %}

{% block buildinfomain %}
<!-- page title -->
<div class="row-fluid span10">
 <div class="page-header">
     <h1>{{build.target_set.all|join:" "}} {{build.machine}}</h1>
 </div>
</div>

<!-- build result bar -->
<div class="row-fluid span10 pull-right">
  <div class="alert {%if build.outcome == build.SUCCEEDED%}alert-success{%elif build.outcome == build.FAILED%}alert-error{%else%}alert-info{%endif%}">
    <div class="row-fluid lead">
            <span class="pull-left"><strong>{%if build.outcome == build.SUCCEEDED%}Completed{%elif build.outcome == build.FAILED%}Failed{%else%}{%endif%}</strong> {{build.completed_on|date:"d/m/y H:i"}} with </span>{%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %}{% if  build.errors_no %}
            <span class="span2"><i class="icon-minus-sign red"></i><strong><a href="#errors" class="error"> {{build.errors_no}} error{{build.errors_no|pluralize}}</a></strong></span>
{% endif %}
{% if  build.warnings_no %}
            <span class="span2"><i class="icon-warning-sign yellow"></i><strong><a href="#warnings" class="warning"> {{build.warnings_no}} warning{{build.warnings_no|pluralize}}</a></strong></span>
{% endif %}
            <span class="pull-right">Build time: <a href="build-time.html">{{ build.timespent|sectohms }}</a></span>
{%endif%}
    </div>
  </div>
</div>

{% if build.errors_no %}
<div class="accordion span10 pull-right" id="errors">
  <div class="accordion-group">
    <div class="accordion-heading">
      <a class="accordion-toggle error toggle-errors">
         <h2 id="error-toggle">
           <i class="icon-minus-sign"></i>
           {{build.errors_no}} error{{build.errors_no|pluralize}}
         </h2>
      </a>
    </div>
    <div class="accordion-body collapse in" id="collapse-errors">
      <div class="accordion-inner">
        <div class="span10">
          {% for error in logmessages %}{% if error.level == 2 %}
            <div class="alert alert-error">
              <pre>{{error.message}}</pre>
            </div>
          {% endif %}{% endfor %}
        </div>
      </div>
    </div>
  </div>
</div>
{% endif %}

{%if build.outcome == build.SUCCEEDED%}
<!-- built images -->
<div class="row-fluid span10 pull-right">
  <h2>Images</h2>

<div class="well" style="background-color:transparent;">
</div>
</div>

{%else%}
<!-- error dump -->
{%endif%}

<!-- build summary -->
<div class="row-fluid span10 pull-right">
<h2>Build summary</h2>
    <div class="well span4" style="margin-left:0px; background-color:transparent;">
        <h4><a href="{%url 'configuration' build.pk%}">Configuration</a></h4>
            <dl>
        <dt>Machine</dt><dd>{{build.machine}}</dd>
        <dt>Distro</dt><dd></dd>
        <dt>Layers</dt>{% for i in build.layer_version_build.all %}<dd>{{i.layer.name}}</dd>{%endfor%}
            </dl>
    </div>
    <div class="well span4" style="background-color:transparent;">
        <h4><a href="{%url 'tasks' build.pk%}">Tasks</a></h4>
            <dl>
        <dt>Total number of tasks</dt><dd>{{build.task_build.all.count}}</dd>
        <dt>Tasks executed</dt><dd>{% query build.task_build task_executed=1 order__gt=0 as exectask%}{{exectask.count}}</dd>
        <dt>Tasks prebuilt</dt><dd>{% query build.task_build task_executed=0 order__gt=0 as noexectask%}{{noexectask.count}}</dd>
        <dt>Reuse</dt><dd>{% query build.task_build order__gt=0 as texec %}{{noexectask.count|multiply:100|divide:texec.count}}%</dd>
            </dl>
    </div>
    <div class="well span4" style="background-color:transparent;">
        <h4><a href="{% url 'recipes' build.pk %}">Recipes</a> & <a href="{% url 'packages' build.pk %}">Packages</a></h4>
            <dl>
        <dt>Recipes used</dt><dd>{{recipecount}}</dd>
        <dt>Packages built</dt><dd>{{build.package_set.all.count}}</dd>
            </dl>
    </div>
</div>

{% if build.warnings_no %}
<div class="accordion span10 pull-right" id="warnings">
  <div class="accordion-group">
    <div class="accordion-heading">
      <a class="accordion-toggle warning toggle-warnings">
        <h2 id="warning-toggle">
          <i class="icon-warning-sign"></i>
          {{build.warnings_no}} warning{{build.warnings_no|pluralize}}
        </h2>
      </a>
    </div>
    <div class="accordion-body collapse" id="collapse-warnings">
      <div class="accordion-inner">
        <div class="span10">
          {% for warning in logmessages %}{% if warning.level == 1 %}
            <div class="alert alert-warning">
              <pre>{{warning.message}}</pre>
            </div>
          {% endif %}{% endfor %}
        </div>
      </div>
    </div>
  </div>
</div>
{% endif %}

{% endblock %}