summary refs log tree commit diff
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
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)))