guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[no subject]


From: Ludovic Courtès
Date: Sat, 18 Nov 2023 13:12:02 -0500 (EST)

branch: master
commit 7f042dbc37a3b9b0caa552233b2753a9279c7f90
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Sat Nov 18 12:37:10 2023 +0100

    database: Add ‘newly-failed’ field to <evaluation-summary>.
    
    * src/cuirass/database.scm (<evaluation-summary>)[newly-failed]: New
    field.
    (db-get-evaluation-summary, db-get-evaluation-absolute-summary):
    Initialize it.
---
 src/cuirass/database.scm | 18 ++++++++++++++----
 tests/database.scm       |  5 +++--
 2 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/src/cuirass/database.scm b/src/cuirass/database.scm
index d5d342b..c77ccc6 100644
--- a/src/cuirass/database.scm
+++ b/src/cuirass/database.scm
@@ -123,6 +123,7 @@
             evaluation-summary-total
             evaluation-summary-succeeded
             evaluation-summary-failed
+            evaluation-summary-newly-failed
             evaluation-summary-scheduled
             evaluation-summary-start-time
             evaluation-summary-checkout-time
@@ -1856,6 +1857,7 @@ GROUP BY Evaluations.specification;") ))
   (total           evaluation-summary-total)
   (succeeded       evaluation-summary-succeeded)
   (failed          evaluation-summary-failed)
+  (newly-failed    evaluation-summary-newly-failed)
   (scheduled       evaluation-summary-scheduled)
   (start-time      evaluation-summary-start-time)
   (checkout-time   evaluation-summary-checkout-time)
@@ -1870,7 +1872,9 @@ Evaluations.checkouttime, Evaluations.evaltime,
 SUM(CASE WHEN B.status > -100 THEN 1 ELSE 0 END) as total,
 SUM(CASE WHEN B.status = 0 THEN 1 ELSE 0 END) as succeeded,
 SUM(CASE WHEN B.status > 0 THEN 1 ELSE 0 END) as failed,
-SUM(CASE WHEN B.status < 0 THEN 1 ELSE 0 END) as scheduled
+SUM(CASE WHEN B.status < 0 THEN 1 ELSE 0 END) as scheduled,
+SUM(CASE WHEN (B.status > 0 AND B.weather = " (build-weather new-failure) ")\
+    THEN 1 ELSE 0 END) as newfailures
 FROM Evaluations
 LEFT JOIN Builds as B
 ON B.evaluation = Evaluations.id
@@ -1878,7 +1882,7 @@ WHERE Evaluations.id = " id
 "GROUP BY Evaluations.id
 ORDER BY Evaluations.id ASC;"))
       ((id status timestamp checkouttime evaltime
-           total succeeded failed scheduled)
+           total succeeded failed scheduled newfailures)
        (evaluation-summary
         (id (string->number id))
         (status (string->number status))
@@ -1888,6 +1892,7 @@ ORDER BY Evaluations.id ASC;"))
         (completion-time (string->number evaltime))
         (succeeded (or (string->number succeeded) 0))
         (failed (or (string->number failed) 0))
+        (newly-failed (or (string->number newfailures) 0))
         (scheduled (or (string->number scheduled) 0))))
       (_ #f))))
 
@@ -1918,10 +1923,14 @@ Evaluations.timestamp, Evaluations.checkouttime, 
Evaluations.evaltime,
 SUM(CASE WHEN Jobs.status > -100 THEN 1 ELSE 0 END) as total,
 SUM(CASE WHEN Jobs.status = 0 THEN 1 ELSE 0 END) AS succeeded,
 SUM(CASE WHEN Jobs.status > 0 THEN 1 ELSE 0 END) AS failed,
-SUM(CASE WHEN Jobs.status < 0 THEN 1 ELSE 0 END) AS scheduled
+SUM(CASE WHEN Jobs.status < 0 THEN 1 ELSE 0 END) AS scheduled,
+SUM(CASE WHEN (Builds.status > 0 AND Builds.weather = " (build-weather 
new-failure) ")\
+    THEN 1 ELSE 0 END) as newfailures
 FROM Evaluations
 LEFT JOIN Jobs
 ON Jobs.evaluation = Evaluations.id
+LEFT JOIN Builds
+ON Builds.id = Jobs.build
 WHERE Evaluations.id = ANY(" eval-ids ")
 GROUP BY Evaluations.id
 ORDER BY Evaluations.id ASC;"))
@@ -1929,13 +1938,14 @@ ORDER BY Evaluations.id ASC;"))
       (match rows
         (() (reverse summary))
         (((evaluation status timestamp checkouttime evaltime
-                      total succeeded failed scheduled) . rest)
+                      total succeeded failed scheduled newly-failed) . rest)
          (loop rest
                (cons (evaluation-summary
                       (id (number evaluation))
                       (total (number total))
                       (succeeded (number succeeded))
                       (failed (number failed))
+                      (newly-failed (number newly-failed))
                       (scheduled (number scheduled))
                       (status (number status))
                       (start-time (number timestamp))
diff --git a/tests/database.scm b/tests/database.scm
index 064d160..3a1cd55 100644
--- a/tests/database.scm
+++ b/tests/database.scm
@@ -488,14 +488,15 @@ timestamp, checkouttime, evaltime) VALUES ('guix', 0, 0, 
0, 0);")
          (evaluation-id eval)))))
 
   (test-equal "db-get-evaluation-summary"
-    '(2 0 1 1)
+    '(2 0 1 0 1)
     (with-fibers
       (let* ((summary (db-get-evaluation-summary 2))
              (total (evaluation-summary-total summary))
              (succeeded (evaluation-summary-succeeded summary))
              (failed (evaluation-summary-failed summary))
+             (newly-failed (evaluation-summary-newly-failed summary))
              (scheduled (evaluation-summary-scheduled summary)))
-        (list total succeeded failed scheduled))))
+        (list total succeeded failed newly-failed scheduled))))
 
   (test-equal "db-get-evaluation-summary empty"
     '(0 0 0 0)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]