diff options
author | Ricardo Wurmus <rekado@elephly.net> | 2019-06-19 10:21:33 +0200 |
---|---|---|
committer | Ricardo Wurmus <rekado@elephly.net> | 2019-06-19 10:22:51 +0200 |
commit | efe7d36e64aae5f96fd2e75ceb841990e721f4af (patch) | |
tree | 05bb1c15a6d6451846b2d95793ef7306b6bb19c7 /src/cuirass/database.scm | |
parent | a11f7a4779f89d09dd50caf8f03894d80d55e20d (diff) | |
download | cuirass-efe7d36e64aae5f96fd2e75ceb841990e721f4af.tar cuirass-efe7d36e64aae5f96fd2e75ceb841990e721f4af.tar.gz |
http: Show number of builds.
* src/cuirass/database.scm (db-get-evaluation-summary): New procedure.
* src/cuirass/http.scm (url-handler): Display number of builds in tabs.
Diffstat (limited to 'src/cuirass/database.scm')
-rw-r--r-- | src/cuirass/database.scm | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/cuirass/database.scm b/src/cuirass/database.scm index a0e6c63..4733d3d 100644 --- a/src/cuirass/database.scm +++ b/src/cuirass/database.scm @@ -58,6 +58,7 @@ db-get-evaluations-id-min db-get-evaluations-id-max db-get-evaluation-specification + db-get-evaluation-summary read-sql-file read-quoted-string sqlite-exec @@ -802,6 +803,31 @@ SELECT MAX(id) FROM Evaluations WHERE specification=" spec))) (and=> (expect-one-row rows) (cut vector-ref <> 0))))) +(define (db-get-evaluation-summary id) + (with-db-critical-section db + (let ((rows (sqlite-exec db " +SELECT E.id, E.in_progress, B.total, B.succeeded, B.failed, B.scheduled +FROM + (SELECT id, in_progress +FROM Evaluations +WHERE (id=" id ")) E +LEFT JOIN + (SELECT rowid, evaluation, SUM(status=0) as succeeded, +SUM(status>0) as failed, SUM(status<0) as scheduled, SUM(status>-100) as total +FROM Builds +GROUP BY evaluation) B +ON B.evaluation=E.id +ORDER BY E.id ASC;"))) + (and=> (expect-one-row rows) + (match-lambda + (#(id in-progress total succeeded failed scheduled) + `((#:id . ,id) + (#:in-progress . ,in-progress) + (#:total . ,(or total 0)) + (#:succeeded . ,(or succeeded 0)) + (#:failed . ,(or failed 0)) + (#:scheduled . ,(or scheduled 0))))))))) + (define (db-get-builds-query-min query) "Return the smallest build row identifier matching QUERY." (with-db-critical-section db |