guix-commits
[Top][All Lists]
Advanced

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

03/05: ci: Represent build status as a symbol.


From: guix-commits
Subject: 03/05: ci: Represent build status as a symbol.
Date: Sun, 4 Jul 2021 17:04:17 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 77dba2281ffec5294f39d4f10f9cc64a936cf9ff
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Sat Jul 3 18:02:11 2021 +0200

    ci: Represent build status as a symbol.
    
    * guix/ci.scm (define-enumeration-mapping): New macro.
    (integer->build-status): New procedure.
    (<build>)[status]: Use it.
---
 guix/ci.scm | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/guix/ci.scm b/guix/ci.scm
index 0af04ff..bf35732 100644
--- a/guix/ci.scm
+++ b/guix/ci.scm
@@ -75,13 +75,31 @@
   (file-size   build-product-file-size)           ;integer
   (path        build-product-path))               ;string
 
+(define-syntax-rule (define-enumeration-mapping proc
+                      (names integers) ...)
+  (define (proc value)
+    (match value
+      (integers 'names) ...)))
+
+(define-enumeration-mapping integer->build-status
+  ;; Copied from 'build-status' in Cuirass.
+  (submitted        -3)
+  (scheduled        -2)
+  (started          -1)
+  (succeeded         0)
+  (failed            1)
+  (failed-dependency 2)
+  (failed-other      3)
+  (canceled          4))
+
 (define-json-mapping <build> make-build build?
   json->build
   (id          build-id "id")                     ;integer
   (derivation  build-derivation)                  ;string | #f
   (evaluation  build-evaluation)                  ;integer
   (system      build-system)                      ;string
-  (status      build-status "buildstatus" )       ;integer
+  (status      build-status "buildstatus"         ;symbol
+               integer->build-status)
   (timestamp   build-timestamp)                   ;integer
   (products    build-products "buildproducts"     ;<build-product>*
                (lambda (products)



reply via email to

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