[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)