From: Michael Tremer Date: Tue, 5 Jul 2022 15:53:30 +0000 (+0000) Subject: builds: Add some test to generate builds history on the fly X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0201be1223ca36e11b19c97a5a0483e055ab84df;p=pbs.git builds: Add some test to generate builds history on the fly Signed-off-by: Michael Tremer --- diff --git a/src/buildservice/builds.py b/src/buildservice/builds.py index 2cacdf42..a2b3e7a4 100644 --- a/src/buildservice/builds.py +++ b/src/buildservice/builds.py @@ -597,6 +597,50 @@ class Build(base.DataObject): ## Logging stuff + def get_log(self, limit=None): + res = self.db.query(""" + WITH events AS ( + -- Build creation times + SELECT + builds.id AS build_id, + builds.created_at AS t, + 'created'::text AS event, + builds.owner_id AS by_user_id + FROM + builds + + -- Build finish/failed times + UNION ALL + + SELECT + builds.id AS build_id, + builds.finished_at AS t, + CASE + WHEN builds.failed IS TRUE + THEN 'failed'::text + ELSE 'finished'::text + END AS event, + NULL AS by_user_id + FROM + builds + WHERE + builds.finished_at IS NOT NULL + ) + + -- Sort everything in reverse order + SELECT + * + FROM + events + WHERE + build_id = %s + ORDER BY + t DESC""", + self.id, + ) + + return res # XXX automatically expand all those IDs + def get_log(self, comments=True, repo=True, limit=None): entries = []