elif any((j.has_failed() for j in self.jobs)):
return await self.finished(success=False)
+ # Packages
+
+ @property
+ def packages(self):
+ """
+ Returns a list of all built packages
+ """
+ # Collect all packages
+ packages = itertools.chain(*(job.packages for job in self.jobs))
+
+ packages = { pkg.nevra : pkg for pkg in packages }
+
+ # Return as list
+ return packages.values()
+
## Comment stuff
async def comment(self, **kwargs):
uuid = Column(UUID, nullable=False)
+ # Link
+
+ @property
+ def link(self):
+ return "/packages/%s" % self.uuid
+
# Created At
created_at = Column(
{% endif %}
{% endmacro %}
+{% macro BuildPackages(packages) %}
+ <article class="panel">
+ {% for name, pkgs_by_name in packages | groupby("name") %}
+ {% for pkg in pkgs_by_name %}
+ <div class="panel-block is-block">
+ <div class="level mb-0">
+ <div class="level-left">
+ <div class="level-item is-flex-direction-column">
+ <div>
+ <p class="title is-6">
+ {{ pkg.name }}
+ </p>
+
+ {# Show the summary in a second line #}
+ <p class="has-text-grey">
+ <small>
+ {{ pkg.summary }}
+ </small>
+ </p>
+ </div>
+ </div>
+ </div>
+
+ <div class="level-right">
+ {% for arch, pkgs_by_arch in pkgs_by_name | groupby("arch") %}
+ {% for p in pkgs_by_arch %}
+ <div class="level-item">
+ <a href="{{ p.link }}">
+ <span class="tag is-{{ p.arch }}">
+ {{ p.arch }}
+ </span>
+ </a>
+ </div>
+ {% endfor %}
+ {% endfor %}
+ </div>
+ </div>
+ </div>
+
+ {% break %}
+ {% endfor %}
+ {% endfor %}
+ </article>
+{% endmacro %}
+
{% macro BuildWatchers(build, watchers=None) %}
{% if watchers is none %}
{% set watchers = build.get_watchers() %}
{% from "macros.html" import Text with context %}
{% from "bugs/macros.html" import BugList with context %}
-{% from "builds/macros.html" import BuildWatchers with context %}
+{% from "builds/macros.html" import BuildPackages, BuildWatchers with context %}
{% from "builds/groups/macros.html" import BuildGroupList with context %}
{% from "events/macros.html" import EventList with context %}
{% from "jobs/macros.html" import JobList with context %}
</div>
</section>
+ {# Packages #}
+ {% if build.packages %}
+ <section class="section">
+ <div class="container">
+ <h5 class="title is-5">
+ {{ _("Packages") }}
+ </h5>
+
+ {{ BuildPackages(build.packages) }}
+ </div>
+ </section>
+ {% endif %}
+
{% if build.jobs %}
<section class="section">
<div class="container">