{%if build.outcome == build.SUCCEEDED%}
<!-- built images -->
-{% if hasImages %}
- <h2>Images</h2>
+ {% if hasArtifacts %}
+ <h2>Build artifacts</h2>
{% for target in targets %}
{% if target.target.is_image %}
- <div class="well well-transparent dashboard-section">
+ <div class="well well-transparent dashboard-section" data-artifacts-for-target="{{target.target.pk}}">
<h3><a href="{% url 'target' build.pk target.target.pk %}">{{target.target.target}}</a></h3>
<dl class="dl-horizontal">
<dt>Packages included</dt>
<dt>Total package size</dt>
<dd>{{target.pkgsz|filtered_filesizeformat}}</dd>
</dl>
- {% if target.targetHasNoImages %}
- <div class="row">
- <div class="col-md-7">
- <div class="alert alert-info">
- <p>
- <strong>This build did not create any image files</strong>
- </p>
- <p>
- This is probably because valid image and license manifest
- files from a previous build already exist in your
- <code>build/tmp/deploy</code>
- directory. You can
- also <a href="{% url 'target' build.pk target.target.pk %}">view the
- license manifest information</a> in Toaster.
- </p>
- </div>
- </div>
- </div>
- {% endif %}
- {% if not target.targetHasNoImages %}
+ {% if target.targetHasImages %}
<dl class="dl-horizontal">
<dt>
Manifests
</div>
{% endif %}
{% endfor %}
-{% endif %}
+ {% endif %}
{%else%}
<!-- error dump -->
tgts = Target.objects.filter( build_id = build_id ).order_by( 'target' );
# set up custom target list with computed package and image data
- targets = [ ]
+ targets = []
ntargets = 0
- targetHasNoImages = False
+ # True if at least one target for this build has an SDK artifact
+ # or image file
+ has_artifacts = False
+
for t in tgts:
- elem = { }
- elem[ 'target' ] = t
+ elem = {}
+ elem['target'] = t
+
+ target_has_images = False
+ image_files = []
+
npkg = 0
pkgsz = 0
package = None
for package in Package.objects.filter(id__in = [x.package_id for x in t.target_installed_package_set.all()]):
pkgsz = pkgsz + package.size
- if ( package.installed_name ):
+ if package.installed_name:
npkg = npkg + 1
- elem[ 'npkg' ] = npkg
- elem[ 'pkgsz' ] = pkgsz
- ti = Target_Image_File.objects.filter( target_id = t.id )
- imageFiles = [ ]
+ elem['npkg'] = npkg
+ elem['pkgsz'] = pkgsz
+ ti = Target_Image_File.objects.filter(target_id = t.id)
for i in ti:
- ndx = i.file_name.rfind( '/' )
- if ( ndx < 0 ):
+ ndx = i.file_name.rfind('/')
+ if ndx < 0:
ndx = 0;
- f = i.file_name[ ndx + 1: ]
- imageFiles.append({
+ f = i.file_name[ndx + 1:]
+ image_files.append({
'id': i.id,
'path': f,
'size': i.file_size,
'suffix': i.suffix
})
- if t.is_image and (len(imageFiles) <= 0 or len(t.license_manifest_path) <= 0):
- targetHasNoImages = True
- elem[ 'imageFiles' ] = imageFiles
- elem[ 'targetHasNoImages' ] = targetHasNoImages
+ if len(image_files) > 0:
+ target_has_images = True
+ elem['targetHasImages'] = target_has_images
+
+ elem['imageFiles'] = image_files
elem['target_kernel_artifacts'] = t.targetkernelfile_set.all()
target_sdk_files = t.targetsdkfile_set.all()
- elem['target_sdk_artifacts_count'] = target_sdk_files.count()
+ target_sdk_artifacts_count = target_sdk_files.count()
+ elem['target_sdk_artifacts_count'] = target_sdk_artifacts_count
elem['target_sdk_artifacts'] = target_sdk_files
- targets.append( elem )
+ if target_has_images or target_sdk_artifacts_count > 0:
+ has_artifacts = True
+
+ targets.append(elem)
##
# how many packages in this build - ignore anonymous ones
context = {
'build' : build,
'project' : build.project,
- 'hasImages' : build.has_images(),
+ 'hasArtifacts' : has_artifacts,
'ntargets' : ntargets,
'targets' : targets,
'recipecount' : recipeCount,