]> git.ipfire.org Git - pbs.git/commitdiff
builders: Show total build time
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 25 Jun 2022 19:02:32 +0000 (19:02 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 25 Jun 2022 19:02:32 +0000 (19:02 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/builders.py
src/templates/builders/detail.html

index 8863e7e6f6e5adb65ba410744626ba5b4cfb0fae..28bf527ec5c17647433bf4d53cb49d0fbb7cd04e 100644 (file)
@@ -653,6 +653,28 @@ class Builder(base.DataObject):
 
                log.debug("%s has been stopped" % self)
 
+       # Stats
+
+       @lazy_property
+       def total_build_time(self):
+               res = self.db.get("""
+                       SELECT
+                               SUM(
+                                       COALESCE(jobs.finished_at, CURRENT_TIMESTAMP)
+                                       -
+                                       jobs.started_at
+                               ) AS t
+                       FROM
+                               jobs
+                       WHERE
+                               started_at IS NOT NULL
+                       AND
+                               builder_id = %s""",
+                       self.id,
+               )
+
+               return res.t
+
 
 def generate_password_hash(password, salt=None, algo="sha512"):
        """
index f9263128ca4422a994c4083844c92ce6abb91b93..b51d0564bd8ab123ab5480dd2c1ee713e4e17257 100644 (file)
                                        {{ _("Supported Architectures: %s") % locale.list(builder.supported_arches) }}
                                </p>
 
+                               {% if builder.total_build_time %}
+                                       <p>
+                                               {{ _("Total Build Time: %s") % format_time(builder.total_build_time) }}
+                                       </p>
+                               {% end %}
+
                                {% if builder.stats %}
                                        <p>
                                                {{ _("%s Memory") % format_size(builder.stats.mem_total) }}