{% extends "basebuildpage.html" %} {% load humanize %} {% load projecttags %} {% load field_values_filter %} {% block title %} {{build.get_sorted_target_list|field_values:"target"|join:", "}} {{build.machine}} - {{build.project.name}} - Toaster {% endblock %} {% block parentbreadcrumb %} {% if build.get_sorted_target_list.count > 0 %} {{build.get_sorted_target_list.0.target}} {% endif %} {%if build.target_set.all.count > 1%}(+{{build.target_set.all.count|add:"-1"}}){%endif%} {{build.machine}} ({{build.completed_on|date:"d/m/y H:i"}}) {% endblock %} {% block buildinfomain %}
{%if build.outcome == build.SUCCEEDED%}Completed{%elif build.outcome == build.FAILED%}Failed{%else%}{%endif%} on {{build.completed_on|date:"d/m/y H:i"}} {% if build.warnings.count or build.errors.count %} with {% endif %} {%if build.outcome == build.SUCCEEDED or build.outcome == build.FAILED %} {% if build.errors.count %} {{build.errors.count}} error{{build.errors.count|pluralize}} {% endif %} {% if build.warnings.count %} {% if build.errors.count %}and{% endif %} {{build.warnings.count}} warning{{build.warnings.count|pluralize}} {% endif %} {% if build.cooker_log_path %} Download build log {% endif %} Build time: {% if build.outcome == build.SUCCEEDED %} {{ build.timespent_seconds|sectohms }} {% else %} {{ build.timespent_seconds|sectohms }} {% endif %} {%endif%}
{% if build.errors.count %}
{% for error in build.errors %}
{{error.message}}
{% endfor %}
{% endif %} {%if build.outcome == build.SUCCEEDED%} {% if hasArtifacts %}

Build artifacts

{% for target in targets %} {% if target.target.is_image %}
{% if target.npkg > 0 %}

{{target.target.target}}

Packages included
{{target.npkg}}
Total package size
{{target.pkgsz|filtered_filesizeformat}}
{% else %}

{{target.target.target}}

{% endif %} {% if target.targetHasImages %}
Manifests
License manifest
{% if target.target.package_manifest_path %}
Package manifest
{% endif %}
Image files
    {% for i in target.imageFiles|dictsort:"suffix" %}
  • {{i.suffix}}  ({{i.size|filtered_filesizeformat}})
  • {% endfor %}
Kernel artifacts
    {% for artifact in target.target_kernel_artifacts|dictsort:"basename" %}
  • {{artifact.basename}} ({{artifact.file_size|filtered_filesizeformat}})
  • {% endfor %}
{% endif %} {% if target.target_sdk_artifacts_count > 0 %}
SDK artifacts
    {% for artifact in target.target_sdk_artifacts|dictsort:"basename" %}
  • {{artifact.basename}} ({{artifact.file_size|filtered_filesizeformat}})
  • {% endfor %}
{% endif %}
{% endif %} {% endfor %} {% endif %} {%else%} {%endif%} {% if build.buildartifact_set.all.count > 0 %}

Other artifacts

Other artifacts
{% for ba in build.buildartifact_set.all|dictsort:"file_name" %} {{ba.get_basename}} ({{ba.file_size|filtered_filesizeformat}})
{% endfor %}
{% endif %} {% if build.started %}

Build summary

Configuration

Machine
{{build.machine}}
Distro
{{build.distro}}
Layers
    {% for i in build.layer_version_build.all|dictsort:"layer.name" %}
  • {{i.layer.name}}
  • {%endfor%}

Tasks

{% query build.task_build outcome=4 order__gt=0 as exectask%} {% if exectask.count > 0 %}
Failed tasks
{% if exectask.count == 1 %} {{exectask.0.recipe.name}} {{exectask.0.task_name}} {% elif exectask.count > 1%} {{exectask.count}} {% endif %}
{% endif %}
Total number of tasks
{% query build.task_build order__gt=0 as alltasks %}{{alltasks.count}}
Tasks executed
{% query build.task_build task_executed=1 order__gt=0 as exectask%}{{exectask.count}}
Tasks not executed
{% query build.task_build task_executed=0 order__gt=0 as noexectask%}{{noexectask.count}}
Reuse
{% query build.task_build order__gt=0 as texec %} {% if noexectask.count|multiply:100|divide:texec.count < 0 %} 0 {% else %} {{noexectask.count|multiply:100|divide:texec.count}} {% endif %} %

Recipes & Packages

Recipes built
{{recipecount}}
Packages built
{{packagecount}}
{% endif %} {% if build.warnings.count %}
{% for warning in logmessages %}{% if warning.level == 1 %}
{{warning.message}}
{% endif %}{% endfor %}
{% endif %}
{% endblock %}