Commit graph

155 commits

Author SHA1 Message Date
Clément Lassieur
f71b0a0012
ci: Make sure the Guix checkout is the one providing Cuirass proc.
Fixes <https://bugs.gnu.org/36378>.
Reported by Reza Alizadeh Majd <r.majd@pantherx.org>.

* build-aux/hydra/gnu-system.scm (find-current-checkout): New procedure.
(hydra-jobs): Use FIND-CURRENT-CHECKOUT to define CHECKOUT.  Pass it to the
inferior Guix as an extra argument whose key is 'superior-guix-checkout'.
* gnu/ci.scm (find-current-checkout): New procedure.
(hydra-jobs): Use FIND-CURRENT-CHECKOUT to define CHECKOUT.  This will return
'#f' if the current Guix is an inferior.  In that case, use the
'superior-guix-checkout' argument provided by the superior Guix.
2019-12-01 11:26:11 +01:00
Ludovic Courtès
b5f8c2c885
hydra: Compute jobs in an inferior.
Previously we would rely on auto-compilation of all the Guix modules.
The complete evaluation would take ~15mn on berlin.guixsd.org and
require lots of RAM.  This approach should be faster since potentially
only part of the modules are rebuilt.  Furthermore, as a side-effect, it
builds the derivations that 'guix pull' uses.

* build-aux/hydra/gnu-system.scm: Remove 'eval-when' form.
(hydra-jobs): New procedure.
* gnu/ci.scm (package->alist, qemu-jobs, system-test-jobs)
(tarball-jobs): Return strings for the 'license' field.
* guix/self.scm (compiled-guix)[*cli-modules*]: Add (gnu ci).
2019-01-06 21:41:07 +01:00
Ludovic Courtès
65ff85dcee
hydra: evaluate: Add the checkout to the store.
* build-aux/hydra/evaluate.scm <top level>: Add call to 'add-to-store'.
Use that as the 'file-name' attribute.  Call 'primitive-load' in a
directory excursion to SOURCE.
2019-01-06 21:41:07 +01:00
Ludovic Courtès
59fb5c1cdb
hydra: Move job definitions to (gnu ci).
* build-aux/hydra/gnu-system.scm: Move code to...
* gnu/ci.scm: ... here.  New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
2019-01-06 21:41:07 +01:00
Ludovic Courtès
dd8356e3c6
hydra: Use short timeouts for the QEMU jobs and system tests.
These builds shouldn't take too long.  Sometimes the guest kernel
crashes and the VM gets stuck; we should be able to terminate those jobs
quickly.

* build-aux/hydra/gnu-system.scm (qemu-jobs)[->alist]: Add
'max-silent-time' and 'timeout'.
(system-test-jobs)[test->thunk]: Likewise.
2018-12-29 01:05:17 +01:00
Danny Milosavljevic
07c791c110
hydra: Increase image sizes for USB image and Flash image.
* build-aux/hydra/gnu-system.scm (qemu-jobs) <usb-image>: Increase from
1024 MiB to 1500 MiB.
<flash-image>: Increase from 1024 MiB to 1500 MiB.
2018-12-09 00:49:54 +01:00
Clément Lassieur
6ffffb3c96
hydra: Remove useless 'parameterize'.
* build-aux/hydra/gnu-system.scm (manifests->packages): Remove 'parameterize'.
2018-09-14 09:01:07 +02:00
Clément Lassieur
88bfabf111
hydra: Add support for manifests.
* build-aux/hydra/gnu-system.scm (arguments->manifests, manifests->packages):
New procedures.
(hydra-jobs): Add a "manifests" subset.
* doc/guix.texi (Continuous Integration): Update accordingly.
2018-09-13 10:15:04 +02:00
Ludovic Courtès
7b0449712e
hydra: Make sure we add an absolute file name to the load path.
Previously, under Cuirass, we'd add "build-aux/cuirass/../hydra/../..".
But then, commit c45477d2a1 added this
in (gnu system vm):

         (local-file (search-path %load-path
                                  "guix/store/schema.sql"))

Since 'search-path' would not return an absolute file name, 'local-file'
would try to resolve that relative to "gnu/system", leading to:

  ERROR: In procedure force:
  In procedure canonicalize-path: No such file or directory: "/gnu/store/…-guix-ce573b1/gnu/system/build-aux/cuirass/../hydra/../../guix/store/schema.sql

* build-aux/hydra/gnu-system.scm <top level>: Canonicalize DIR before
adding it to %LOAD-PATH.
2018-06-15 10:04:59 +02:00
Ludovic Courtès
e740e8b27d
hydra: guix-modular: Build the full Guix.
* build-aux/hydra/guix-modular.scm (build-job): Pass #:pull-version to
BUILD.
2018-06-10 23:32:00 +02:00
Ludovic Courtès
d6680dccb0
hydra: Switch back to "-" instead of "@" in package job names.
Fixes a regression introduced in ede121de42.
Reported by Mark H Weaver <mhw@netris.org>.

* build-aux/hydra/gnu-system.scm (job-name): Pass "-" as the second
argument to 'package-full-name'.
2018-05-12 15:58:56 +02:00
Ludovic Courtès
df154c05dc
hydra: Fix uses of 'eval-when'.
* build-aux/hydra/gnu-system.scm: Use (expand load eval) in 'eval-when'
clause so as to not poison a cat and to ensure %load-compiled-path is
properly set when the 'use-modules' clauses are expanded.
* build-aux/hydra/guix.scm: Likewise.
2018-04-09 00:00:58 +02:00
Ludovic Courtès
98cda1b997
hydra: guix-modular: Honor the 'systems' argument.
* build-aux/hydra/guix-modular.scm (hydra-jobs)[systems]: Define as in
gnu-system.scm.
Honor SYSTEMS.
2018-04-08 22:07:47 +02:00
Ludovic Courtès
16c28becf2
hydra: guix-modular: Explicitly build for the latest 2.2.
* build-aux/hydra/guix-modular.scm (build-job): Pass #:guile-version to
'build'.
2018-04-08 19:57:31 +02:00
Ludovic Courtès
f6dfb8bb08
hydra: Clear '%load-compiled-path' for gnu-system.scm.
On hydra.gnu.org GUILE_LOAD_COMPILED_PATH happened to be empty so we
were fine.  However on GuixSD with Cuirass, we could have a conflicting
non-empty path and .go files for some of the (guix …) and (gnu …)
modules would be taken from there.

* build-aux/hydra/gnu-system.scm: Set %load-compiled-path.
2018-04-08 17:57:13 +02:00
Ludovic Courtès
9fe9594611
hydra: 'guix-modular' jobs use the new 'build-self'.
* build-aux/hydra/guix-modular.scm: Remove 'eval-when' form that fiddled
with '%load-path'.
(build-job): Load 'build-aux/build-self.scm' and call the procedure it
returns.
* build-aux/hydra/evaluate.scm: The 'build-things' replacement no longer
calls 'exit'.
2018-04-08 17:48:33 +02:00
Ludovic Courtès
351f384e57
cuirass: Add job specs for the modular Guix.
* build-aux/cuirass/guix-modular.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
2018-04-08 17:48:33 +02:00
Marius Bakke
bee7bb315c
Merge branch 'master' into core-updates 2018-02-01 13:18:47 +01:00
Danny Milosavljevic
2a49a18e8b
hydra: Fix up arm qemu job.
* build-aux/hydra/gnu-system.scm (qemu-jobs): Fix up arm qemu job.

Follow-up to 44b0303762.
2018-01-29 16:02:25 +01:00
Danny Milosavljevic
44b0303762
hydra: Only build the "flash image" on arm.
* build-aux/hydra/gnu-system.scm (qemu-jobs): Only build the "flash image"
on arm.
2018-01-29 15:56:51 +01:00
Danny Milosavljevic
ebd6a6445f
hydra: Work around import problem.
* build-aux/hydra/gnu-system.scm: qemu-jobs: Work around import problem.

Follow-up to 1fe805b290.
2018-01-29 13:23:07 +01:00
Danny Milosavljevic
1fe805b290
hydra: Add (gnu bootloader) import.
* build-aux/hydra/gnu-system.scm: Add (gnu bootloader) import.

Follow-up to de2bc8d6da.
2018-01-29 10:04:41 +01:00
Danny Milosavljevic
de2bc8d6da
hydra: Add arm image builder.
* build-aux/hydra/gnu-system.scm (%u-boot-systems): New
variable.
(%guixsd-supported-systems): Add armhf-linux.
(qemu-jobs): Use u-boot if system in %u-boot-systems.
2018-01-29 00:11:58 +01:00
Ludovic Courtès
c0fda0b0df
hydra: Make the list of target systems a parameter.
* build-aux/hydra/gnu-system.scm (hydra-jobs): Define 'systems' and use
it.
2018-01-21 01:42:59 +01:00
Ludovic Courtès
8781c3d9fc
hydra: Do not cross-build from non-Intel platforms.
* build-aux/hydra/gnu-system.scm (hydra-jobs)[cross-jobs](pointless?):
Return #t on non-Intel.
2017-12-29 13:38:06 +01:00
Ludovic Courtès
e2e6e9ebf0
hydra: Pre-load the compiler.
Starting from Guile 2.2.3, '%fresh-auto-compile' does what it says and
would auto-compile everything, including the compiler (see
<https://bugs.gnu.org/29226>).

* build-aux/hydra/gnu-system.scm: Call 'compile'.
2017-12-13 23:11:54 +01:00
Ludovic Courtès
34797d8afc
hydra: Invalidate derivation caches after each architecture evaluation.
This reduces max RSS from 1.3G to 1.0G.

* guix/derivations.scm (invalidate-derivation-caches!): New procedure.
* build-aux/hydra/gnu-system.scm (hydra-jobs): Use it.  Add 'format'
call.
2017-12-13 23:11:53 +01:00
Ludovic Courtès
11a54b3d6e
hydra: Add jobs for the modular Guix.
* build-aux/hydra/guix-modular.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
2017-11-21 23:09:17 +01:00
Ludovic Courtès
49961951c5
hydra: 'evaluate' passes an alist to the entry point.
* build-aux/hydra/evaluate.scm (%top-srcdir): New variable.
<top level>: Pass it to 'hydra-jobs'.
2017-11-21 23:09:16 +01:00
Ludovic Courtès
b574cee361
hydra: Add jobs for all of '%final-inputs'.
* build-aux/hydra/gnu-system.scm (package->job): Create a 'base.' job
when PACKAGE is a member of BASE-PACKAGES.
(all-packages)[adjust]: New procedure.
Fold over %FINAL-INPUTS and add it to the result.
2017-11-07 18:09:13 +01:00
Ludovic Courtès
25a5b187e8
hydra: Build hidden packages.
* build-aux/hydra/gnu-system.scm (all-packages): Pass #:select? to
'fold-packages'.
2017-11-07 18:09:12 +01:00
Ludovic Courtès
b5033c5a9e
hydra: Factorize package list creation.
* build-aux/hydra/gnu-system.scm (all-packages): New procedure, with
body taken from...
(hydra-jobs): ... here.  Use it.
2017-11-07 18:09:12 +01:00
Jan Nieuwenhuizen
454caca8e6
cuirass: Add 'cuirass-jobs.scm' target to compute the Cuirass jobs.
* build-aux/hydra/evaluate.scm: Support "cuirass" command line option.
* Makefile.am (cuirass-jobs.scm): New target.
2017-09-28 17:39:54 +02:00
Jan Nieuwenhuizen
516b53828e
cuirass: Support subset with list of package[@version].
* build-aux/hydra/gnu-system.scm (hydra-jobs): Support subset of
packages: ("name[@version" ...).
2017-09-27 22:19:28 +02:00
Jan Nieuwenhuizen
66bc1d2aaf
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.
2017-09-27 22:19:28 +02:00
Ludovic Courtès
386f541556
hydra: Add 'guix.SYSTEM' jobs.
* build-aux/hydra/guix.scm (package->alist): Disable grafting.
(hydra-jobs): Return 'guix.SYSTEM' jobs in addition to 'tarball'.
2017-07-25 17:46:17 +02:00
Ludovic Courtès
06ce8e5680
hydra: Simplify 'tarball' job.
* build-aux/hydra/guix.scm (tarball-package): Remove.
(hydra-jobs): Use 'dist-package' instead of 'tarball-package'.
2017-07-25 17:46:17 +02:00
Danny Milosavljevic
be1033a334
build: Add iso9660 system image generator.
* build-aux/hydra/gnu-system.scm (qemu-jobs): Add 'iso9660-image .
* gnu/build/vm.scm (make-iso9660-image): New variable.  Export it.
* gnu/system/vm.scm (iso9660-image): New variable.  Use make-iso9660-image.
(system-disk-image): Use iso9660-image.
2017-07-03 10:07:59 +02:00
Ludovic Courtès
82c955c0a5
hydra: Don't build non-substitutable packages.
* build-aux/hydra/gnu-system.scm (package->job): Compute PACKAGE's
derivation; return #f if 'substitutable-derivation?' returns #f.
2017-06-15 23:07:47 +02:00
Ludovic Courtès
d116695b31
hydra: Cross-build Guile 2.2.
* build-aux/hydra/gnu-system.scm (%core-packages): Add GUILE-2.2.
2017-05-16 14:16:56 +02:00
Ludovic Courtès
7f4da8ff6b
maint: Add 'time-monotonic' bug workaround in build-aux/hydra/evaluate.scm.
* build-aux/hydra/evaluate.scm: Add 'time-monotonic' workaround for
Guile 2.2.
2017-05-07 00:18:36 +02:00
Ludovic Courtès
6f9f01fbf6
hydra: Don't build deprecated packages.
* build-aux/hydra/gnu-system.scm (hydra-jobs): When iterating over the
packages, exclude those that match 'package-superseded'.
2017-03-30 23:46:07 +02:00
Marius Bakke
84157bb8bf
Merge branch 'master' into core-updates
Most conflicts are from 6fd52309b8.
2017-03-30 22:59:53 +02:00
Ludovic Courtès
32e18d3754
hydra: Include the localstatedir in the binary tarball.
This is a followup to 6b63c43e06.

* build-aux/hydra/gnu-system.scm (tarball-jobs): Pass #:localstatedir? #t
to 'self-contained-tarball'.
2017-03-30 11:15:16 +02:00
Efraim Flashner
3f9543aee1
Merge remote-tracking branch 'origin/master' into core-updates 2017-03-13 23:08:49 +02:00
Ludovic Courtès
239c22663a
Add 'guix pack'.
* gnu/system/install.scm (self-contained-tarball): Move to...
* guix/scripts/pack.scm: ... here.  New file.
* doc/guix.texi (Binary Installation): Mention 'guix pack'.
(Invoking guix pack): New node.
* build-aux/make-binary-tarball.scm: Remove.
* Makefile.am (MODULES): Add guix/scripts/pack.scm.
(EXTRA_DIST): Remove build-aux/make-binary-tarball.scm.
(guix-binary.%.tar.xz): Rewrite using 'guix pack'.
* build-aux/hydra/gnu-system.scm (tarball-jobs): Adjust accordingly.
2017-03-12 17:47:25 +01:00
Ludovic Courtès
e90e0fad1b
Merge branch 'master' into core-updates 2017-03-09 16:35:41 +01:00
Ludovic Courtès
9ec2a4d3fe
hydra: Really disable 32-to-64-bit cross-builds.
Fixes <http://bugs.gnu.org/26022>.
Reported by Efraim Flashner <efraim@flashner.co.il>.

* build-aux/hydra/gnu-system.scm (hydra-jobs)[cross-jobs](from-32-to-64?):
Check whether TARGET contains "64" rather than checking whether TARGET
ends in "64", which is rarely the case.
(same?): Add special case for armhf-linux.
2017-03-09 16:28:36 +01:00
Efraim Flashner
ac16cf3ece
hydra: Add "aarch64-linux-gnu" as a cross-compilation target.
* build-aux/hydra/gnu-system.scm (%cross-targets): Add
"aarch64-linux-gnu".
2017-02-17 12:33:55 +02:00
Efraim Flashner
300211e349
hydra: Add "aarch64-linux-gnu" as a cross-compilation target.
* build-aux/hydra/gnu-system.scm (%cross-targets): Add
"aarch64-linux-gnu".
2017-02-14 23:40:22 +02:00