aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-03-26 23:11:16 +0200
committerLudovic Courtès <ludo@gnu.org>2018-04-08 17:48:33 +0200
commita1ec7540be9b30593f5e83e36a0e83b1bcf337f1 (patch)
tree5b43fe95e45b16d883a911041658bc0ceb774bfe
parent3c0128b035ae00462f1b0a4427d9525d750e5575 (diff)
downloadguix-a1ec7540be9b30593f5e83e36a0e83b1bcf337f1.tar.gz
guix-a1ec7540be9b30593f5e83e36a0e83b1bcf337f1.zip
cuirass: Factorize hydra-to-cuirass CI job translation.
* build-aux/cuirass/gnu-system.scm: Move code to... * build-aux/cuirass/hydra-to-cuirass.scm: ... here, and include it. * Makefile.am (EXTRA_DIST): Add 'build-aux/cuirass/hydra-to-cuirass.scm' and 'build-aux/cuirass/gnu-system.scm'.
-rw-r--r--Makefile.am2
-rw-r--r--build-aux/cuirass/gnu-system.scm28
-rw-r--r--build-aux/cuirass/hydra-to-cuirass.scm47
3 files changed, 51 insertions, 26 deletions
diff --git a/Makefile.am b/Makefile.am
index 908115e524..e630797b46 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -468,6 +468,8 @@ EXTRA_DIST = \
build-aux/hydra/gnu-system.scm \
build-aux/hydra/guix.scm \
build-aux/hydra/guix-modular.scm \
+ build-aux/cuirass/gnu-system.scm \
+ build-aux/cuirass/hydra-to-cuirass.scm \
build-aux/check-available-binaries.scm \
build-aux/check-final-inputs-self-contained.scm \
build-aux/compile-as-derivation.scm \
diff --git a/build-aux/cuirass/gnu-system.scm b/build-aux/cuirass/gnu-system.scm
index f545ba03bc..0eb834cfba 100644
--- a/build-aux/cuirass/gnu-system.scm
+++ b/build-aux/cuirass/gnu-system.scm
@@ -21,29 +21,5 @@
;;; tool.
;;;
-(include-from-path "build-aux/hydra/gnu-system.scm")
-
-(use-modules ((guix licenses)
- #:select (license? license-name license-uri license-comment)))
-
-(define (cuirass-jobs store arguments)
- "Return Cuirass jobs."
- (map hydra-job->cuirass-job (hydra-jobs store arguments)))
-
-(define (hydra-job->cuirass-job hydra-job)
- (let ((name (car hydra-job))
- (job ((cdr hydra-job))))
- (lambda _ (acons #:job-name (symbol->string name)
- (map symbol-alist-entry->keyword-alist-entry job)))))
-
-(define (symbol-alist-entry->keyword-alist-entry entry)
- (cons (symbol->keyword (car entry)) (entry->sexp-entry (cdr entry))))
-
-(define (entry->sexp-entry o)
- (match o
- ((? license?) `((name . (license-name o))
- (uri . ,(license-uri o))
- (comment . ,(license-comment o))))
- ((lst ...)
- (map entry->sexp-entry lst))
- (_ o)))
+(include "../hydra/gnu-system.scm")
+(include "hydra-to-cuirass.scm")
diff --git a/build-aux/cuirass/hydra-to-cuirass.scm b/build-aux/cuirass/hydra-to-cuirass.scm
new file mode 100644
index 0000000000..75c77ea35a
--- /dev/null
+++ b/build-aux/cuirass/hydra-to-cuirass.scm
@@ -0,0 +1,47 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+;;;
+;;; This file defines the conversion of Hydra build jobs to Cuirass build
+;;; jobs. It is meant to be included in other files.
+;;;
+
+(use-modules ((guix licenses)
+ #:select (license? license-name license-uri license-comment)))
+
+(define (cuirass-jobs store arguments)
+ "Return Cuirass jobs."
+ (map hydra-job->cuirass-job (hydra-jobs store arguments)))
+
+(define (hydra-job->cuirass-job hydra-job)
+ (let ((name (car hydra-job))
+ (job ((cdr hydra-job))))
+ (lambda _ (acons #:job-name (symbol->string name)
+ (map symbol-alist-entry->keyword-alist-entry job)))))
+
+(define (symbol-alist-entry->keyword-alist-entry entry)
+ (cons (symbol->keyword (car entry)) (entry->sexp-entry (cdr entry))))
+
+(define (entry->sexp-entry o)
+ (match o
+ ((? license?) `((name . (license-name o))
+ (uri . ,(license-uri o))
+ (comment . ,(license-comment o))))
+ ((lst ...)
+ (map entry->sexp-entry lst))
+ (_ o)))