From 17c5c2fd7831966b11554581d81720bb650c9049 Mon Sep 17 00:00:00 2001 From: Hilton Chain Date: Fri, 26 Sep 2025 12:53:51 +0800 Subject: [PATCH] ci: Attempt to fix the tarball job. * modules/rosenthal/ci/tarball.scm (tarball-jobs): New procedure. (cuirass-jobs): Copied from Guix. --- modules/rosenthal/ci/tarball.scm | 54 ++++++++++++++++++++++---------- 1 file changed, 38 insertions(+), 16 deletions(-) diff --git a/modules/rosenthal/ci/tarball.scm b/modules/rosenthal/ci/tarball.scm index e5e9644..7f172db 100644 --- a/modules/rosenthal/ci/tarball.scm +++ b/modules/rosenthal/ci/tarball.scm @@ -3,6 +3,7 @@ ;;; SPDX-License-Identifier: GPL-3.0-or-later (define-module (rosenthal ci tarball) + #:use-module (srfi srfi-1) #:use-module (guix derivations) #:use-module (guix gexp) #:use-module (guix monads) @@ -15,25 +16,46 @@ #:use-module (rosenthal packages package-management) #:export (cuirass-jobs)) -;; Adapted from (@@ (gnu ci) tarball-jobs). -(define (cuirass-jobs store arguments) +;; Copied from (@@ (gnu ci) tarball-jobs). +(define (tarball-jobs store system) "Return jobs to build the self-contained Guix binary tarball." (define (->job name drv) (let ((name (string-append name "." system))) (parameterize ((%graft? #f)) (derivation->job name drv)))) - (map (lambda (system) - (->job "binary-tarball" - (run-with-store store - (mbegin %store-monad - (set-guile-for-build (default-guile)) - (>>= (profile-derivation (packages->manifest (list guix/dolly))) - (lambda (profile) - (self-contained-tarball "guix-binary" profile - #:profile-name "current-guix" - #:localstatedir? #t - #:compressor - (lookup-compressor "xz"))))) - #:system system))) - (arguments->systems arguments))) + (list + (->job "binary-tarball" + (run-with-store store + (mbegin %store-monad + (set-guile-for-build (default-guile)) + (>>= (profile-derivation (packages->manifest (list guix/dolly))) + (lambda (profile) + (self-contained-tarball "guix-binary" profile + #:profile-name "current-guix" + #:localstatedir? #t + #:compressor + (lookup-compressor "xz"))))) + #:system system)))) + +;; Copied from (@@ (gnu ci) cuirass-jobs). +(define (cuirass-jobs store arguments) + "Register Cuirass jobs." + + (define systems + (arguments->systems arguments)) + + ;; Turn off grafts. Grafting is meant to happen on the user's machines. + (parameterize ((%graft? #f)) + ;; Return one job for each package, except bootstrap packages. + (append-map + (lambda (system) + (format (current-error-port) + "evaluating for '~a' (heap size: ~a MiB)...~%" + system + (round + (/ (assoc-ref (gc-stats) 'heap-size) + (expt 2. 20)))) + (invalidate-derivation-caches!) + (tarball-jobs store system)) + systems)))