me
/
guix
Archived
1
0
Fork 0

ci: Represent build status as a symbol.

* guix/ci.scm (define-enumeration-mapping): New macro.
(integer->build-status): New procedure.
(<build>)[status]: Use it.
master
Ludovic Courtès 2021-07-03 18:02:11 +02:00
parent a2b22cae4f
commit 77dba2281f
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
1 changed files with 19 additions and 1 deletions

View File

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