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 | ||||
|     (match (assoc-ref arguments 'subset) | ||||
|       ("core" 'core)                              ; only build core packages | ||||
|       ("hello" 'hello)                            ; only build hello | ||||
|       (_ 'all)))                                  ; build everything | ||||
| 
 | ||||
|   (define (cross-jobs system) | ||||
|  | @ -340,6 +341,12 @@ valid." | |||
|                                                  package system)) | ||||
|                                   %core-packages) | ||||
|                              (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 | ||||
|                      (error "unknown subset" subset)))) | ||||
|                 %hydra-supported-systems))) | ||||
|  |  | |||
|  | @ -15367,15 +15367,8 @@ packages, as prescribed in the @file{gnu-system.scm} example spec: | |||
| (let ((spec #~((#:name . "guix") | ||||
|                (#:url . "git://git.savannah.gnu.org/guix.git") | ||||
|                (#:load-path . ".") | ||||
| 
 | ||||
|                ;; Here we must provide an absolute file name. | ||||
|                ;; We take jobs from one of the examples provided | ||||
|                ;; by Cuirass. | ||||
|                (#:file . #$(file-append | ||||
|                             cuirass | ||||
|                             "/tests/gnu-system.scm")) | ||||
| 
 | ||||
|                (#:proc . hydra-jobs) | ||||
|                (#:file . "build-aux/cuirass/gnu-system.scm") | ||||
|                (#:proc . cuirass-jobs) | ||||
|                (#:arguments (subset . "hello")) | ||||
|                (#:branch . "master")))) | ||||
|   (service cuirass-service-type | ||||
|  |  | |||
		Reference in a new issue