mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-11-17 20:27:36 -05:00
ci: Represent build status as a symbol.
* guix/ci.scm (define-enumeration-mapping): New macro. (integer->build-status): New procedure. (<build>)[status]: Use it.
This commit is contained in:
parent
a2b22cae4f
commit
77dba2281f
1 changed files with 19 additions and 1 deletions
20
guix/ci.scm
20
guix/ci.scm
|
@ -75,13 +75,31 @@ (define-json-mapping <build-product> make-build-product
|
|||
(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)
|
||||
|
|
Loading…
Reference in a new issue