cuirass: Add gnu-system build spec.
* build-aux/hydra/gnu-system.scm (hydra-jobs): Support subset "hello". * build-aux/cuirass/gnu-system.scm: New file. * doc/guix.texi (Continuous Integration): Update example spec.
This commit is contained in:
		
							parent
							
								
									408091d5a5
								
							
						
					
					
						commit
						66bc1d2aaf
					
				
					 3 changed files with 56 additions and 9 deletions
				
			
		
							
								
								
									
										47
									
								
								build-aux/cuirass/gnu-system.scm
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								build-aux/cuirass/gnu-system.scm
									
										
									
									
									
										Normal file
									
								
							|  | @ -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 build jobs for the Cuirass continuation integration | ||||||
|  | ;;; 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)))) | ||||||
|  |     (_ o))) | ||||||
|  | @ -270,6 +270,7 @@ valid." | ||||||
|   (define subset |   (define subset | ||||||
|     (match (assoc-ref arguments 'subset) |     (match (assoc-ref arguments 'subset) | ||||||
|       ("core" 'core)                              ; only build core packages |       ("core" 'core)                              ; only build core packages | ||||||
|  |       ("hello" 'hello)                            ; only build hello | ||||||
|       (_ 'all)))                                  ; build everything |       (_ 'all)))                                  ; build everything | ||||||
| 
 | 
 | ||||||
|   (define (cross-jobs system) |   (define (cross-jobs system) | ||||||
|  | @ -340,6 +341,12 @@ valid." | ||||||
|                                                  package system)) |                                                  package system)) | ||||||
|                                   %core-packages) |                                   %core-packages) | ||||||
|                              (cross-jobs system))) |                              (cross-jobs system))) | ||||||
|  |                     ((hello) | ||||||
|  |                      ;; Build hello package only. | ||||||
|  |                      (if (string=? system (%current-system)) | ||||||
|  |                          (let ((hello (specification->package "hello"))) | ||||||
|  |                            (list (package-job store (job-name hello) hello system))) | ||||||
|  |                          '())) | ||||||
|                     (else |                     (else | ||||||
|                      (error "unknown subset" subset)))) |                      (error "unknown subset" subset)))) | ||||||
|                 %hydra-supported-systems))) |                 %hydra-supported-systems))) | ||||||
|  |  | ||||||
|  | @ -15367,15 +15367,8 @@ packages, as prescribed in the @file{gnu-system.scm} example spec: | ||||||
| (let ((spec #~((#:name . "guix") | (let ((spec #~((#:name . "guix") | ||||||
|                (#:url . "git://git.savannah.gnu.org/guix.git") |                (#:url . "git://git.savannah.gnu.org/guix.git") | ||||||
|                (#:load-path . ".") |                (#:load-path . ".") | ||||||
| 
 |                (#:file . "build-aux/cuirass/gnu-system.scm") | ||||||
|                ;; Here we must provide an absolute file name. |                (#:proc . cuirass-jobs) | ||||||
|                ;; We take jobs from one of the examples provided |  | ||||||
|                ;; by Cuirass. |  | ||||||
|                (#:file . #$(file-append |  | ||||||
|                             cuirass |  | ||||||
|                             "/tests/gnu-system.scm")) |  | ||||||
| 
 |  | ||||||
|                (#:proc . hydra-jobs) |  | ||||||
|                (#:arguments (subset . "hello")) |                (#:arguments (subset . "hello")) | ||||||
|                (#:branch . "master")))) |                (#:branch . "master")))) | ||||||
|   (service cuirass-service-type |   (service cuirass-service-type | ||||||
|  |  | ||||||
		Reference in a new issue