me
/
guix
Archived
1
0
Fork 0
Commit Graph

46 Commits (fe533002636be8f172b154ce7e54c6ffe2a5c7c9)

Author SHA1 Message Date
Mathieu Othacehe 76bea3f8bc
ci: Remove hydra support.
This removes hydra support to use Cuirass as the only continuous integration
system.

* build-aux/hydra/gnu-system.scm: Remove it.
* build-aux/hydra/guix-modular.scm: Ditto.
* build-aux/hydra/guix.scm: Ditto.
* build-aux/cuirass/hydra-to-cuirass.scm: Ditto.
* Makefile.am (EXTRA_DIST): Update it.
(hydra-jobs.scm): Remove it.
(cuirass-jobs.scm): Update it.
* build-aux/hydra/evaluate.scm: Move it to ...
* build-aux/cuirass/evaluate.scm: ... here.
* build-aux/cuirass/guix-modular.scm: Remove it.
* build-aux/cuirass/gnu-system.scm: Ditto.
* guix/packages.scm (%hydra-supported-systems): Rename it to ...
(%cuirass-supported-systems): ... this variable.
* build-aux/check-final-inputs-self-contained: Adapt it.
* etc/release-manifest.scm: Ditto.
* gnu/ci.scm (package->alist): Remove it.
(derivation->job): New procedure.
(package-job, package-cross-job, cross-jobs, image-jobs, system-test-jobs,
tarball-jobs): Use it.
(guix-jobs): New procedure.
(hydra-jobs): Rename it to ...
(cuirass-jobs): ... this procedure.
2021-03-10 08:49:48 +01:00
Mathieu Othacehe 5c111882de
ci: Remove the package version from the job name.
Match Hydra behaviour where the job_name is <package_name>.<system>. This
allows to operate on several builds of the same package in the CI, regardless
of their version.

* gnu/ci.scm (job-name): Remove package version from the job name.
2021-01-31 15:14:15 +01:00
Mathieu Othacehe b54523ad32
ci: Raise max-silent-time to 3600.
* gnu/ci.scm (image-jobs, system-test-jobs): Raise max-silent-time to 3600
seconds.
2021-01-29 10:04:33 +01:00
Danny Milosavljevic 846e52400f
ci: Build novena-barebones-raw-image.
* gnu/ci.scm (%guix-system-images): Add novena-barebones-raw-image.
2020-12-03 12:36:03 +01:00
Mathieu Othacehe 98bf5ffe2d
Revert "ci: Temporarily disable image-jobs."
This reverts commit a79041f0b5. The issue has
been fixed with 07a33b1d21.
2020-12-01 09:33:16 +01:00
Mathieu Othacehe a79041f0b5
ci: Temporarily disable image-jobs.
* gnu/ci.scm (hydra-jobs): Temporarily disable image-jobs.
2020-11-29 22:05:20 +01:00
Mathieu Othacehe fc2fa7ad40
ci: Limit image and system tests jobs periodicity.
System tests and images jobs are extremely expensive in I/O operations and
storage size, pass a "period" argument to Cuirass to limit their periodicity.

* gnu/ci.scm (hours): New procedure,
(image-jobs, system-test-jobs, tarball-jobs): set a period argument.
2020-11-25 10:48:55 +01:00
Mathieu Othacehe 17d9a91e6b
image: Add pinebook-pro support.
* gnu/system/images/pinebook-pro.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* gnu/ci.scm (%guix-system-images): Add pinebook-pro-barebones-raw-image.
2020-11-20 17:00:27 +01:00
Mathieu Othacehe b5f2a035f9
ci: Restore license handling.
This is a follow-up of 7c02eb6c and 44daec7f. Restore the initial behaviour.

* gnu/ci.scm (package->alist): Restore license handling.
2020-11-02 21:02:39 +01:00
Mathieu Othacehe 44daec7fa4
ci: Convert license to text.
This is a follow-up of 7c02eb6c8d.

* gnu/ci.scm (package->alist): Convert license to text.
2020-11-02 10:42:33 +01:00
Mathieu Othacehe 7c02eb6c8d
ci: Ignore package license.
Fixes: <https://issues.guix.gnu.org/44370>.

* gnu/ci.scm (package->alist): Ignore package license.
2020-11-02 10:34:39 +01:00
Mathieu Othacehe 8a4f1eef98
images: Add pine64-barebones-raw-image.
* gnu/system/images/pine64.scm (pine64-barebones-raw-image): New variable.
* gnu/ci.scm (%guix-system-images): Add it.
2020-10-06 09:51:43 +02:00
Mathieu Othacehe c5cf45e906
ci: Add log and outputs keys.
Add 'log and 'outputs properties to hydra objects. This way Cuirass won't
have to go through every derivation to add those properties.

* gnu/ci.scm (package->alist, image-jobs, system-test-jobs, tarball-jobs): Add
'log and 'outputs properties.
* build-aux/hydra/guix-modular.scm (build-job): Ditto.
2020-10-01 18:39:41 +02:00
Mathieu Othacehe 3ca014d1df
ci: Add nix-name and system keys.
Add 'nix-name and 'system properties to hydra objects. This way Cuirass won't
have to go through every derivation to add those properties.

* gnu/ci.scm (package->alist, image-jobs, system-test-jobs, tarball-jobs): Add
'nix-name and 'system properties.
* build-aux/hydra/guix-modular.scm (build-job): Ditto.
2020-10-01 11:46:53 +02:00
Mathieu Othacehe 3d0e875026
ci: Build hurd-barebones-qcow2-image.
Build hurd-barebones-qcow2-image instead of hurd-barebones-disk-image to speed
downloads.

* gnu/ci.scm (%guix-system-images): Build 'hurd-barebones-qcow2-image instead
of 'hurd-barebones-disk-image.
2020-09-29 11:42:53 +02:00
Jan (janneke) Nieuwenhuizen db2785cd86
ci: Remove native-system restriction from "hello" and "list" jobsets.
* gnu/ci.scm (hydra-jobs): Remove restriction for system to
equal (%current-system).

Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2020-09-25 18:14:58 +02:00
Ludovic Courtès 84f38f036f
ci: In the 'core' subset, build GCC >= 7.
Suggested by Jan Nieuwenhuizen <janneke@gnu.org>.

* gnu/ci.scm (%core-packages): Keep only GCC >= 7.
2020-09-03 23:26:53 +02:00
Julien Lepiller 7596ae1034
gnu: ci: Truncate git commit in ISO label.
* gnu/ci.scm (image-jobs): Keep only 7 characters from git commit in ISO
label.
2020-09-03 14:10:10 +02:00
Julien Lepiller f43ec1c5b0
gnu: ci: Set label in iso9660 jobs.
* gnu/ci.scm (image-jobs): Set label of generated ISOs.
2020-08-31 16:12:31 +02:00
Mathieu Othacehe 880bf7a094
ci: Do not limit disk-image size.
Installation tests are already checking the disk-image size. Do not set
another limit here.

* gnu/ci.scm (image-jobs): Do not limit disk-image size.
2020-06-29 17:24:36 +02:00
Mathieu Othacehe b06ba9e0ff
ci: Build Guix System images.
Build a list of Guix System images. For now, this list only contains the Hurd
barebones Guix System image.

* gnu/ci.scm (%guixsd-supported-systems): Remove "armhf-linux",
(%u-boot-systems): remove unused variable,
(%guix-system-images): new variable
(qemu-jobs): rename to "image-jobs" and build the Guix Systems listed in the
new "%guix-system-images" variable,
(system-test-jobs): adapt accordingly,
(hydra-jobs): ditto.
2020-06-25 10:29:41 +02:00
Ludovic Courtès 1189f405ae
Revert "ci: Build Guix System images."
This reverts commit eda3fcfb46.

This change broke evaluations on CI:

  @ build-succeeded /gnu/store/991738x97ff1f8181a7p1pflqwkgagm8-profile.drv -
  ERROR: In procedure read:
  In procedure scm_lreadr: #<unknown port>:16:144: Unknown # object: #\<
2020-06-25 01:27:55 +02:00
Mathieu Othacehe eda3fcfb46
ci: Build Guix System images. 2020-06-24 20:47:35 +02:00
Mathieu Othacehe e3f0155c41
image: Do not use VM to create disk-images.
Now that installing Grub on raw disk-images is supported, we do not need to
rely on (gnu system vm) module.

* gnu/system/image.scm (make-system-image): Rename to ...
(system-image): ... this, and remove the compatibility wrapper.
(find-image): Turn to a monadic procedure. This will become useful when
introducing Hurd support, to be able to detect the target system.
* gnu/ci.scm (qemu-jobs): Use lower-object now that system-image returns a
file-like object.
* gnu/tests/install.scm (run-install): Ditto.
* guix/scripts/system.scm (system-derivation-for-action): Add a 'base-image'
argument,
(perform-action): adapt accordingly.
2020-05-29 09:12:11 +02:00
Marius Bakke 87a40d7203
Merge branch 'master' into core-updates 2020-05-05 20:43:21 +02:00
Mathieu Othacehe f19cf27c2b
image: Add a new API.
Raw disk-images and ISO9660 images are created in a Qemu virtual machine. This
is quite fragile, very slow, and almost unusable without KVM.

For all these reasons, add support for host image generation. This implies the
use new image generation mechanisms.

- Raw disk images: images of partitions are created using tools such as mke2fs
  and mkdosfs depending on the partition file-system type. The partition
  images are then assembled into a final image using genimage.

- ISO9660 images: the ISO root directory is populated within the store. GNU
  xorriso is then called on that directory, in the exact same way as this is
  done in (gnu build vm) module.

Those mechanisms are built upon the new (gnu image) module.

* gnu/image.scm: New file.
* gnu/system/image.scm: New file.
* gnu/build/image: New file.
* gnu/local.mk: Add them.
* gnu/system/vm.scm (system-disk-image): Rename to system-disk-image-in-vm.
* gnu/ci.scm (qemu-jobs): Adapt to new API.
* gnu/tests/install.scm (run-install): Ditto.
* guix/scripts/system.scm (system-derivation-for-action): Ditto.
2020-05-05 16:13:53 +02:00
Marius Bakke 2778302399
Merge branch 'master' into core-updates
Conflicts:
	etc/news.scm
	gnu/local.mk
	gnu/packages/check.scm
	gnu/packages/cross-base.scm
	gnu/packages/gimp.scm
	gnu/packages/java.scm
	gnu/packages/mail.scm
	gnu/packages/sdl.scm
	gnu/packages/texinfo.scm
	gnu/packages/tls.scm
	gnu/packages/version-control.scm
2020-04-08 13:00:50 +02:00
Ludovic Courtès 8f41f19236
ci: Remove "mips64el-linux-gnuabi64" from '%cross-targets'.
The N64 ABI has always been a niche, it seems.

* gnu/ci.scm (%cross-targets): Remove "mips64el-linux-gnuabi64".
2020-04-07 12:31:36 +02:00
Marius Bakke 961d2ee269
Merge branch 'master' into core-updates 2020-03-14 13:13:40 +01:00
Ludovic Courtès f292c50191
maint: Add 'etc/release-manifest.scm'.
* etc/release-manifest.scm: New file.
* gnu/ci.scm (%cross-targets): Export.
* build-aux/check-available-binaries.scm: Remove.
* Makefile.am (EXTRA_DIST): Add 'etc/release-manifest.scm' and remove
'build-aux/check-available-binaries.scm'.
(assert-binaries-available): Rewrite using 'guix weather -m'.
2020-03-13 17:33:38 +01:00
Marius Bakke 50b99c90c8
Merge branch 'master' into core-updates 2020-03-10 20:50:02 +01:00
Ludovic Courtès bc8b2ffdac
ci: Adjust 'channel-build-system' for when the source is a file name.
Fixes an evaluation error introduced in
dd1ee160be8ba4e211432c08e161c24901cd670e: when invoked via
'build-aux/cuirass/gnu-system.scm', SOURCE is a store file name, not a
<local-file> as it is when invoked via 'etc/system-tests.scm'.

* gnu/ci.scm (channel-build-system)[build]: Call 'lower-object' only
when SOURCE is not a string.
2020-03-05 23:40:24 +01:00
Ludovic Courtès dd1ee160be
tests: "make check-system" no longer interns source upfront.
* gnu/ci.scm (channel-build-system)[build, lower]: Honor #:source.
(channel-source->package): New procedure.
(system-test-jobs): Remove 'instance' and call to
'checkout->channel-instance'.  Use 'channel-source->package'.
* build-aux/run-system-tests.scm (tests-for-channel-instance): Rename to...
(tests-for-current-guix): ... this.  Change 'instance' to 'source'.
(run-system-tests): Use 'local-file' instead of 'interned-file' for
SOURCE.
2020-03-05 16:33:37 +01:00
Ludovic Courtès 3046e73b4c
ci: Move 'cross-jobs' procedure to the top level.
* gnu/ci.scm (cross-jobs): New procedure.  Moved from...
(hydra-jobs): ... here.
2020-03-05 16:33:37 +01:00
Ludovic Courtès 668a519870
ci: Don't cross build bootstrap tarballs to MinGW.
This makes little sense and it broke in commit
8bd2b15b06 since the mingw libc doesn't
have a "static" output.

* gnu/ci.scm (%packages-to-cross-build): Remove.
(packages-to-cross-build): New procedure.
(hydra-jobs)[cross-jobs]: Use it.
2020-02-24 15:42:05 +01:00
Ludovic Courtès 2032d8473d
ci: Cross-build for riscv64-linux-gnu.
* gnu/ci.scm (%cross-targets): Add "riscv64-linux-gnu".
2020-01-31 17:06:16 +01:00
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 887fd835a7
tests: "make check-system" uses Guix built with (guix self).
This is a followup to 7e6d8d366a.
It means that "make check-system" can run tests from (gnu tests install)
much faster because it does not need to build a full 'guix' package.

* gnu/ci.scm (channel-instance->package): Export.
* build-aux/run-system-tests.scm (tests-for-channel-instance): New
procedure, with code formerly in 'run-system-tests'.
(run-system-tests): Call 'interned-file' for SOURCE, and add call to
'tests-for-channel-instance'.
2019-11-13 23:26:35 +01:00
Ludovic Courtès f00ff8db92
ci: Try hard to build package replacements.
The "ghostscript" replacements introduced in
0b859092a7 would not be built because they
have the same name as the original packages.

* gnu/ci.scm (all-packages): Return the replacement of PACKAGE before
PACKAGE.
2019-08-26 13:40:46 +02:00
Carl Dong 67dac6b892
gnu: mingw: Add x86_64 support.
This patch parameterizes previously hard-coded instances of
i686-w64-mingw32, adding support for x86_64-w64-mingw32.

* gnu/packages/mingw.scm (make-mingw-w64): New procedure.
(mingw-w64-i686, mingw-w64-x86_64): New variables.
(%mingw-triplet): Remove.
(mingw-w64): Update to point to 'mingw-w64-i686'.
* gnu/packages/cross-base.scm (cross-gcc): Use 'libc' keyword argument
if specified, instead of treating it as a boolean.
(native-libc): Return the correct mingw-w64 depending on machine
specified in target.
* gnu/packages/bootstrap.scm (glibc-dynamic-linker): Add "x86_64-mingw".
* gnu/build/cross-toolchain.scm (set-cross-path/mingw): Replace
hardcoded 'i686-w64-mingw32' instances with 'target' keyword argument.
(cross-gcc-build-phases): Update accordingly; use 'target-mingw?'
implementation of target checking and add commentary.
* gnu/ci.scm (%cross-targets): Add "x86_64-w64-mingw32".
2019-08-14 21:29:53 +02:00
Ludovic Courtès c3ab921eed
ci: 'channel-build-system' honors the target system.
Fixes a bug made evident e79281be105b16153c375af5506db31fd1e32698: the
x86_64-linux derivation of 'current-guix' would be cached and reused for
i686-linux, leading to test
failures.

Namely, /run/current-system/profile/bin/guix would have an x86_64
binary in its shebang, and thus it would end up being interpreted by
/bin/sh, which would fail like this:

  + guix --version
  /run/current-system/profile/bin/guix: line 2: !#: command not found
  /run/current-system/profile/bin/guix: line 3: syntax error near unexpected token `set!'
  /run/current-system/profile/bin/guix: line 3: `(begin (set! %load-path …

See <https://ci.guix.gnu.org/build/1431119/details>.

* gnu/ci.scm (channel-build-system)[build]: Pass #:system to
'run-with-store'.
2019-07-06 16:17:24 +02:00
Ludovic Courtès 59e8044588
Remove traces of "GuixSD".
* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Remove
mentions of "GuixSD".
* gnu/bootloader/grub.scm (install-grub-efi): Likewise.
* gnu/build/vm.scm (make-iso9660-image): Change default #:volume-id to
"Guix_image".
(initialize-hard-disk): Search for the "Guix_image" label.
* gnu/ci.scm (system-test-jobs, tarball-jobs): Remove "GuixSD".
* gnu/installer/newt/welcome.scm (run-welcome-page): Likewise.
* gnu/packages/audio.scm (supercollider)[description]: Likewise.
* gnu/packages/curl.scm (curl): Likewise.
* gnu/packages/emacs.scm (emacs): Likewise.
* gnu/packages/gnome.scm (network-manager): Likewise.
* gnu/packages/julia.scm (julia): Likewise.
* gnu/packages/linux.scm (alsa-plugins): Likewise.
(powertop, wireless-regdb): Likewise.
* gnu/packages/package-management.scm (guix): Likewise.
* gnu/packages/polkit.scm (polkit): Likewise.
* gnu/packages/tex.scm (texlive-bin): Likewise.
* gnu/services/base.scm (file-systems->fstab): Likewise.
* gnu/services/cups.scm (%cups-activation): Likewise.
* gnu/services/mail.scm (%dovecot-activation): Likewise.
* gnu/services/messaging.scm (prosody-configuration)[log]: Likewise.
* gnu/system/examples/vm-image.tmpl (vm-image-motd): Likewise.
* gnu/system/install.scm (installation-os)[file-systems]: Change root
file system label to "Guix_image".
* gnu/system/mapped-devices.scm (check-device-initrd-modules):
Remove "GuixSD".
* gnu/system/vm.scm (system-docker-image): Likewise.
(system-disk-image)[root-label]: Change to "Guix_image".
* gnu/tests/install.scm (run-install): Remove "GuixSD".
* guix/modules.scm (guix-module-name?): Likewise.
* nix/libstore/optimise-store.cc: Likewise.
2019-03-13 23:12:43 +01:00
Ludovic Courtès c680a7daa5
ci: Skip system tests on armhf-linux.
* gnu/ci.scm (system-test-jobs): Return the empty list when SYSTEM is
"armhf-linux".
2019-01-21 10:19:31 +01:00
Ludovic Courtès 7e6d8d366a
ci: Use a valid 'current-guix'.
This fixes a regression introduced in
b5f8c2c885 whereby 'current-guix' (needed
by some of the system tests) would fail to build.
Reported by Ricardo Wurmus <rekado@elephly.net>.

It also speeds up compilation of 'current-guix' since the channel
instance is already compiled or can be built quickly compared to the
default 'current-guix'.

* gnu/packages/package-management.scm (current-guix-package): New
variable.
(current-guix): Honor it.
* gnu/ci.scm (channel-build-system): New variable.
(channel-instances->derivation): New procedure.
(system-test-jobs): Add #:source and #:commit parameters.
Define 'instance' and parameterize CURRENT-GUIX-PACKAGE.
(hydra-jobs)[checkout, commit, source]: New variables.
Pass #:source and #:commit to 'system-test-jobs'.
2019-01-20 01:42: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 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