1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-06 21:20:33 +02:00
Commit Graph

95 Commits

Author SHA1 Message Date
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
dd1ee160be: 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 e79281be10: 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