all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
blob 0b546e55df4bf3e21547183ec8abc0b66bf9b7de 3224 bytes (raw)
name: build-aux/cuirass/guix-modular.scm 	 # note: path name is non-authoritative(*)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
 
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2021 Mathieu Othacehe <othacehe@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 a continuous integration job to build the same modular
;;; Guix as 'guix pull', which is defined in (guix self).
;;;

(use-modules (guix store)
             (guix config)
             (guix utils)
             ((guix packages) #:select (%hydra-supported-systems))
             (guix derivations)
             (guix monads)
             (srfi srfi-1)
             (ice-9 match))

;; XXX: Debugging hack: since `hydra-eval-guile-jobs' redirects the output
;; port to the bit bucket, let us write to the error port instead.
(setvbuf (current-error-port) 'line)
(set-current-output-port (current-error-port))

(define* (build-job store register source version system)
  "Register a Cuirass job a list building the modular Guix derivation from
SOURCE for SYSTEM.  Use VERSION as the version identifier."
  (define build
    (primitive-load (string-append source "/build-aux/build-self.scm")))

  (let ((name (string-append "guix." system))
        (drv (run-with-store store
               (build source #:version version #:system system
                      #:pull-version 1
                      #:guile-version "2.2"))))
    (register name
              #:derivation (derivation-file-name drv)
              #:log (log-file store (derivation-file-name drv))
              #:outputs (filter-map
                         (lambda (res)
                           (match res
                             ((name . path)
                              `(,name . ,path))))
                         (derivation->output-paths drv))
              #:nix-name (derivation-name drv)
              #:system (derivation-system drv))))

(define (cuirass-jobs store arguments register)
  "Return Cuirass jobs."
  (define systems
    (match (assoc-ref arguments 'systems)
      (#f              %hydra-supported-systems)
      ((lst ...)       lst)
      ((? string? str) (call-with-input-string str read))))

  (define guix-checkout
    (assq-ref arguments 'guix-modular))

  (define version
    (or (assq-ref guix-checkout 'revision)
        "0.unknown"))

  (let ((file (assq-ref guix-checkout 'file-name)))
    (format (current-error-port) "using checkout ~s (~s; arguments: ~s)~%"
            guix-checkout file arguments)

    (for-each (lambda (system)
                (build-job store register file version system))
              systems)))

debug log:

solving 0b546e55df ...
found 0b546e55df in https://yhetil.org/guix/87h7mbgk6e.fsf@gnu.org/
found cbbdbf1133 in https://git.savannah.gnu.org/cgit/guix.git
preparing index
index prepared:
100644 cbbdbf113337fbc0e2a505abf032fd39dc73bbee	build-aux/cuirass/guix-modular.scm

applying [1/1] https://yhetil.org/guix/87h7mbgk6e.fsf@gnu.org/
diff --git a/build-aux/cuirass/guix-modular.scm b/build-aux/cuirass/guix-modular.scm
index cbbdbf1133..0b546e55df 100644

Checking patch build-aux/cuirass/guix-modular.scm...
Applied patch build-aux/cuirass/guix-modular.scm cleanly.

index at:
100644 0b546e55df4bf3e21547183ec8abc0b66bf9b7de	build-aux/cuirass/guix-modular.scm

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.