blob: c6ae2f38024f7cff9efcb9cf5477f902b77c47e9 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001{% extends "basebuilddetailpage.html" %}
2
3{% load projecttags %}
4
Patrick Williamsf1e5d692016-03-30 15:21:19 -05005{% block title %} {{object.name}}_{{object.version}} - {{build.target_set.all|dictsort:"target"|join:", "}} {{build.machine}} - {{build.project.name}} - Toaster {% endblock %}
Patrick Williamsc124f4f2015-09-15 14:41:29 -05006{% block localbreadcrumb %}
7<li><a href="{% url 'recipes' build.pk %}">Recipes</a></li>
8<li>{{object.name}}_{{object.version}} </li>
9{% endblock %}
10
11{% block pagedetailinfomain %}
12
13<!-- Begin container -->
14
15<div class="row span11">
16 <div class="page-header">
17 <h1>{{object.name}}_{{object.version}}</h1>
18 </div>
19</div>
20
21<div class="row span7 tabbable">
22 <ul class="nav nav-pills">
23 <li class="{{tab_states.1}}">
24 <a href="#information" data-toggle="tab">
25 <i class="icon-question-sign get-help" title="Build-related information about the recipe"></i>
26 Recipe details
27 </a>
28 </li>
29 <li>
30 <a href="{% url "recipe_packages" build.pk object.id %}">
31 <i class="icon-question-sign get-help" title="The packaged output resulting from building the recipe"></i>
32 Packages ({{package_count}})
33 </a>
34 </li>
35 <li class="{{tab_states.3}}">
36 <a href="#dependencies" data-toggle="tab">
37 <i class="icon-question-sign get-help" title="The recipe build-time dependencies (i.e. other recipes)"></i>
38 Build dependencies ({{object.r_dependencies_recipe.all.count}})
39 </a>
40 </li>
41 <li class="{{tab_states.4}}">
42 <a href="#brought-in-by" data-toggle="tab">
43 <i class="icon-question-sign get-help" title="The recipe build-time reverse dependencies (i.e. the recipes that depend on this recipe)"></i>
44 Reverse build dependencies ({{object.r_dependencies_depends.all.count}})
45 </a>
46 </li>
47 </ul>
48 <div class="tab-content">
49 <div class="tab-pane {{tab_states.1}}" id="information">
50 <dl class="dl-horizontal">
51 <dt>
52 <i class="icon-question-sign get-help" title="The name of the layer providing the recipe"></i>
53 Layer
54 </dt>
55 <dd>{{layer.name}}</dd>
56
57 <dt>
58 <i class="icon-question-sign get-help" title="Path to the recipe .bb file"></i>
59 Recipe file
60 </dt>
61 <dd><code>{{object.file_path}} {% if object.pathflags %}<i>({{object.pathflags}})</i>{% endif %}</code></dd>
62 {% if layer_version.branch %}
63 <dt>
64 <i class="icon-question-sign get-help" title="The Git branch of the layer providing the recipe"></i>
65 Layer branch
66 </dt>
67 <dd>{{layer_version.branch}}</dd>
68 {% endif %}
69 <dt>
70 <i class="icon-question-sign get-help" title="The Git commit of the layer providing the recipe"></i>
71 Layer commit
72 </dt>
73 <dd class="iscommit">{{layer_version.commit}}</dd>
74 </dl>
75
76 <h2 class="details">Tasks</h2>
77 {% if not tasks %}
78 <div class="alert alert-info">
79 <strong>{{object.name}}_{{object.version}}</strong> does not have any tasks in this build.
80 </div>
81 {% else %}
82 <table class="table table-bordered table-hover">
83 <thead>
84 <tr>
85 <th>
86 <i class="icon-question-sign get-help" title="The running sequence of each task in the build"></i>
87 Order
88 </th>
89 <th>
90 <i class="icon-question-sign get-help" title="The name of the task"></i>
91 Task
92 </th>
93 <th>
94 <i class="icon-question-sign get-help" title="This value tells you if a task had to run (executed) in order to generate the task output, or if the output was provided by another task and therefore the task didn't need to run (not executed)"></i>
95 Executed
96 </th>
97 <th>
98 <i class="icon-question-sign get-help" title="This column tells you if 'executed' tasks succeeded or failed. The column also tells you why 'not executed' tasks did not need to run"></i>
99 Outcome
100 </th>
101 <th>
102 <i class="icon-question-sign get-help" title="This column tells you if a task tried to restore output from the <code>sstate-cache</code> directory or mirrors, and reports the result: Succeeded, Failed or File not in cache"></i>
103 Cache attempt
104 </th>
105 </tr>
106 </thead>
107 <tbody>
108
109 {% for task in tasks %}
110
111 <tr {{ task|task_color }} >
112
113 <td><a {{ task|task_color }} href="{% url "task" build.pk task.pk %}">{{task.order}}</a></td>
114 <td>
115 <a {{ task|task_color }} href="{% url "task" build.pk task.pk %}">{{task.task_name}}</a>
116 {% if task.get_description %}<i class="icon-question-sign get-help hover-help" title="" data-original-title="{{task.get_description}}"></i> {% endif %}
117 </td>
118
119 <td><a {{ task|task_color }} href="{% url "task" build.pk task.pk %}">{{task.get_executed_display}}</a></td>
120
121 <td>
122 <a {{ task|task_color }} href="{% url "task" build.pk task.pk %}">{{task.get_outcome_display}} </a>
123 {% if task.outcome = task.OUTCOME_FAILED %}
124 <a href="{% url 'build_artifact' build.pk "tasklogfile" task.pk %}">
125 <i class="icon-download-alt" title="Download task log file"></i>
126 </a>
127 {% endif %}
128 <i class="icon-question-sign get-help hover-help" title="{{task.get_outcome_help}}"></i>
129 </td>
130 <td>
131 {% ifnotequal task.sstate_result task.SSTATE_NA %}
132 <a {{ task|task_color }} href="{% url "task" build.pk task.pk %}">{{task.get_sstate_result_display}}</a>
133 {% endifnotequal %}
134 </td>
135
136 </tr>
137
138 {% endfor %}
139 </tbody>
140 </table>
141 {% endif %}
142 </div>
143 <div class="tab-pane {{tab_states.3}}" id="dependencies">
144
145 {% if not object.r_dependencies_recipe.all %}
146 <div class="alert alert-info">
147 <strong>{{object.name}}_{{object.version}}</strong> has no build dependencies.
148 </div>
149 {% else %}
150 <table class="table table-bordered table-hover">
151 <thead>
152 <tr>
153 <th>
154 Recipe
155 </th>
156 <th>
157 Version
158 </th>
159 </tr>
160 </thead>
161 <tbody>
162
163 {% for rr in object.r_dependencies_recipe.all|dictsort:"depends_on.name" %}
164 <tr>
165 <td><a href="{% url "recipe" build.pk rr.depends_on.pk %}">{{rr.depends_on.name}}</a></td>
166 <td><a href="{% url "recipe" build.pk rr.depends_on.pk %}">{{rr.depends_on.version}}</a></td>
167 </tr>
168 {% endfor %}
169
170 </tbody>
171 </table>
172 {% endif %}
173
174 </div>
175 <div class="tab-pane {{tab_states.4}}" id="brought-in-by">
176
177 {% if not object.r_dependencies_depends.all %}
178 <div class="alert alert-info">
179 <strong>{{object.name}}_{{object.version}}</strong> has no reverse build dependencies.
180 </div>
181 {% else %}
182 <table class="table table-bordered table-hover">
183 <thead>
184 <tr>
185 <th>
186 Recipe
187 </th>
188 <th>
189 Version
190 </th>
191 </tr>
192 </thead>
193 <tbody>
194
195 {% for rr in object.r_dependencies_depends.all|dictsort:"recipe.name" %}
196 <tr>
197 <td><a href="{% url "recipe" build.pk rr.recipe.pk %}">{{rr.recipe.name}}</a></td>
198 <td><a href="{% url "recipe" build.pk rr.recipe.pk %}">{{rr.recipe.version}}</a></td>
199 </tr>
200 {% endfor %}
201
202 </tbody>
203 </table>
204 {% endif %}
205
206 </div>
207 </div>
208</div>
209
210<div class="row span4 well">
211 <h2>About {{object.name}}</h2>
212 <dl class="item-info">
213 {% if object.summary %}
214 <dt>Summary</dt>
215 <dd>{{object.summary}}</dd>
216 {% endif %}
217 {% if object.description %}
218 <dt>Description</dt>
219 <dd>{{object.description}}</dd>
220 {% endif %}
221 {% if object.homepage %}
222 <dt>Homepage</dt>
223 <dd><a href="{{object.homepage}}">{{object.homepage}}</a></dd>
224 {% endif %}
225 {% if object.bugtracker %}
226 <dt>Bugtracker</dt>
227 <dd><a href="{{object.bugtracker}}">{{object.bugtracker}}</a></dd>
228 {% endif %}
229 {% if object.section %}
230 <dt>
231 Section
232 <i class="icon-question-sign get-help" title="The section in which recipes should be categorized"></i>
233 </dt>
234 <dd>{{object.section}}</dd>
235 {% endif %}
236 {% if object.license %}
237 <dt>License</dt>
238 <dd>{{object.license}}</dd>
239 {% endif %}
240 </dl>
241</div>
242
243{% endblock %}