]>
Commit | Line | Data |
---|---|---|
f6e6ff79 MT |
1 | {% extends "base.html" %} |
2 | ||
3 | {% block title %}{{ _("Job") }}: {{ job.name }}{% end block %} | |
4 | ||
5 | {% block body %} | |
6 | <ul class="breadcrumb"> | |
7 | <li> | |
8 | <a href="/">{{ _("Home") }}</a> | |
9 | <span class="divider">/</span> | |
10 | </li> | |
11 | <li> | |
12 | <a href="/packages">{{ _("Packages") }}</a> | |
13 | <span class="divider">/</span> | |
14 | </li> | |
15 | <li> | |
5aa556bf | 16 | <a href="/package/{{ build.pkg.name }}">{{ build.pkg.name }}</a> |
f6e6ff79 MT |
17 | <span class="divider">/</span> |
18 | </li> | |
19 | <li> | |
b9d096e0 | 20 | <a href="/build/{{ build.uuid }}">{{ build.pkg.friendly_version }}</a> |
f6e6ff79 MT |
21 | <span class="divider">/</span> |
22 | </li> | |
23 | <li class="active"> | |
044a9c43 | 24 | <a href="/job/{{ job.uuid }}">{{ job.arch }}</a> |
f6e6ff79 MT |
25 | </li> |
26 | </ul> | |
27 | ||
8cfba2fb MT |
28 | <div class="btn-group pull-right"> |
29 | <a class="btn dropdown-toggle" data-toggle="dropdown" href="#"> | |
30 | {{ _("Actions") }} <span class="caret"></span> | |
31 | </a> | |
32 | <ul class="dropdown-menu"> | |
33 | {% if job.state in ("dispatching", "running", "uploading") %} | |
34 | <li> | |
35 | <a href="/job/{{ job.uuid }}/abort"> | |
36 | {{ _("Abort job") }} | |
37 | </a> | |
38 | </li> | |
39 | {% elif job.state in ("aborted", "failed") %} | |
40 | <li> | |
41 | <a href="/job/{{ job.uuid }}/schedule?type=rebuild"> | |
42 | {{ _("Restart job") }} | |
43 | </a> | |
44 | </li> | |
45 | {% elif job.state == "finished" %} | |
46 | <li> | |
47 | <a href="/job/{{ job.uuid }}/schedule?type=test"> | |
48 | {{ _("Schedule test build") }} | |
49 | </a> | |
50 | </li> | |
51 | {% end %} | |
52 | </ul> | |
53 | </div> | |
54 | ||
55 | ||
f6e6ff79 | 56 | <div class="page-header"> |
8cfba2fb MT |
57 | <h2> |
58 | {{ _("Build job") }}: {{ job.name }}<br> | |
5aa556bf | 59 | <small>{{ job.pkg.summary }}</small> |
8cfba2fb | 60 | </h2> |
f6e6ff79 MT |
61 | </div> |
62 | ||
63 | {% if job.message %} | |
64 | <div class="alert alert-block"> | |
65 | {{ "<br />".join(job.message.splitlines()) }} | |
66 | </div> | |
67 | {% end %} | |
68 | ||
69 | {% if job.state == "aborted" and job.aborted_state %} | |
70 | <div class="alert alert-block alert-danger"> | |
71 | <span>{{ _("Job has been aborted") }}</span> | |
72 | <p> | |
73 | {{ _("This build job is in an aborted state, because the build process crashed unexpectedly.") }} | |
74 | {{ _("In most cases, there is no log file and you must figure out the issue on your own.") }} | |
75 | </p> | |
76 | <p> | |
77 | {{ _("The error code is:") }} | |
78 | ||
79 | {% if job.aborted_state == -11 %} | |
80 | SEGV - {{ _("Segmentation violation") }} | |
81 | {% else %} | |
82 | {{ job.aborted_state }} - {{ _("Unknown") }} | |
83 | {% end %} | |
84 | </p> | |
85 | ||
86 | {% if current_user and current_user.is_admin() %} | |
87 | <p> | |
88 | {{ _("You may resubmit the job to try again:") }} | |
89 | <a href="/job/{{ job.uuid }}/schedule?type=rebuild">{{ _("Re-submit build") }}</a> | |
90 | </p> | |
91 | {% end %} | |
92 | </div> | |
93 | {% end %} | |
94 | ||
95 | <div class="row"> | |
8cfba2fb MT |
96 | <div class="span7"> |
97 | <div class="well well-large well-white ac"> | |
98 | <div class="row-fluid"> | |
99 | <div class="span5"> | |
20e70907 | 100 | {% module JobState(job, cls="lead", show_icon=True) %} |
8cfba2fb | 101 | |
ca3e24f8 MT |
102 | {% if job.rank %} |
103 | <p> | |
104 | {{ _("#%s in the build queue") % job.rank }} | |
105 | </p> | |
106 | {% end %} | |
107 | ||
8cfba2fb MT |
108 | <hr> |
109 | ||
110 | <p> | |
111 | <span class="lead">{{ friendly_time(job.duration) }}</span> | |
112 | {% if job.builder %} | |
113 | <br> | |
114 | <a href="/builder/{{ job.builder.name }}">{{ job.builder.name }}</a> | |
115 | {% else %} | |
116 | <span class="muted">{{ _("No builder assigned.") }}</span> | |
117 | {% end %} | |
118 | </p> | |
f6e6ff79 | 119 | </div> |
f6e6ff79 | 120 | |
8cfba2fb MT |
121 | <div class="span7"> |
122 | <p> | |
123 | <strong>{{ _("Created") }}</strong><br> | |
124 | {{ format_date(job.time_created, full_format=True) }} | |
125 | </p> | |
126 | {% if job.time_started %} | |
127 | <p> | |
128 | <strong>{{ _("Started") }}</strong><br> | |
129 | {{ format_date(job.time_started, full_format=True) }} | |
130 | </p> | |
131 | {% end %} | |
132 | {% if job.time_finished %} | |
133 | <p> | |
134 | <strong>{{ _("Finished") }}</strong><br> | |
135 | {{ format_date(job.time_finished, full_format=True) }} | |
136 | </p> | |
137 | {% end %} | |
f6e6ff79 MT |
138 | </div> |
139 | </div> | |
f6e6ff79 MT |
140 | </div> |
141 | </div> | |
8cfba2fb MT |
142 | |
143 | <div class="span5"> | |
144 | <h4>{{ _("Build logs") }}</h4> | |
145 | {% if job.logfiles %} | |
146 | {% module LogFilesTable(job, job.logfiles) %} | |
147 | {% else %} | |
148 | <p class="muted">{{ _("No logs available, yet.") }}</p> | |
149 | {% end %} | |
150 | ||
6990cac2 | 151 | {% if job.buildroot %} |
8cfba2fb MT |
152 | <hr> |
153 | <p class="ac"> | |
6990cac2 MT |
154 | <a href="/job/{{ job.uuid }}/buildroot">{{ _("Buildroot") }}</a> |
155 | ({{ _("%s package", "%s packages", len(job.buildroot)) % len(job.buildroot) }}) | |
8cfba2fb MT |
156 | </p> |
157 | {% end %} | |
158 | </div> | |
f6e6ff79 MT |
159 | </div> |
160 | ||
4b92e0a0 | 161 | {% if len(job) > 0 %} |
8cfba2fb | 162 | <hr> |
f6e6ff79 | 163 | |
8cfba2fb MT |
164 | <h3> |
165 | {{ _("Package files") }} | |
4b92e0a0 | 166 | <small>({{ len(job) }})</small> |
8cfba2fb | 167 | </h3> |
f6e6ff79 | 168 | |
4b92e0a0 | 169 | {% module PackagesTable(job, job) %} |
f6e6ff79 MT |
170 | {% end %} |
171 | ||
172 | {% if log %} | |
8cfba2fb | 173 | <hr> |
f6e6ff79 | 174 | |
8cfba2fb MT |
175 | <h3>{{ _("Log") }}</h3> |
176 | ||
177 | {% module Log(log) %} | |
f6e6ff79 MT |
178 | {% end %} |
179 | {% end block %} |