2018-03-05 19:36:11 +01:00
|
|
|
|
{ nixpkgs ? { outPath = (import ../lib).cleanSource ./..; revCount = 130979; shortRev = "gfedcba"; }
|
2013-10-10 12:16:20 +02:00
|
|
|
|
, stableBranch ? false
|
2017-04-14 23:59:54 +02:00
|
|
|
|
, supportedSystems ? [ "x86_64-linux" "aarch64-linux" ]
|
2012-04-09 14:49:03 +02:00
|
|
|
|
}:
|
2012-04-05 15:00:30 +02:00
|
|
|
|
|
2018-01-16 17:29:43 +01:00
|
|
|
|
with import ../pkgs/top-level/release-lib.nix { inherit supportedSystems; };
|
2015-03-20 19:23:55 +01:00
|
|
|
|
with import ../lib;
|
|
|
|
|
|
2012-02-23 13:00:05 +01:00
|
|
|
|
let
|
|
|
|
|
|
2016-07-31 15:05:38 +02:00
|
|
|
|
version = fileContents ../.version;
|
2013-10-10 12:16:20 +02:00
|
|
|
|
versionSuffix =
|
2014-05-01 14:52:07 +02:00
|
|
|
|
(if stableBranch then "." else "pre") + "${toString nixpkgs.revCount}.${nixpkgs.shortRev}";
|
2013-03-26 14:00:31 +01:00
|
|
|
|
|
2016-02-29 20:02:26 +01:00
|
|
|
|
importTest = fn: args: system: import fn ({
|
|
|
|
|
inherit system;
|
|
|
|
|
} // args);
|
|
|
|
|
|
2018-03-07 17:28:18 +01:00
|
|
|
|
# Note: only supportedSystems are considered.
|
2018-03-20 02:47:56 +01:00
|
|
|
|
callTestOnMatchingSystems = systems: fn: args:
|
|
|
|
|
forMatchingSystems
|
2018-03-07 17:28:18 +01:00
|
|
|
|
(intersectLists supportedSystems systems)
|
|
|
|
|
(system: hydraJob (importTest fn args system));
|
2018-03-20 02:47:56 +01:00
|
|
|
|
callTest = callTestOnMatchingSystems supportedSystems;
|
2016-02-29 20:02:26 +01:00
|
|
|
|
|
2018-03-20 02:47:56 +01:00
|
|
|
|
callSubTests = callSubTestsOnMatchingSystems supportedSystems;
|
|
|
|
|
callSubTestsOnMatchingSystems = systems: fn: args: let
|
2016-02-29 20:02:26 +01:00
|
|
|
|
discover = attrs: let
|
|
|
|
|
subTests = filterAttrs (const (hasAttr "test")) attrs;
|
|
|
|
|
in mapAttrs (const (t: hydraJob t.test)) subTests;
|
|
|
|
|
|
|
|
|
|
discoverForSystem = system: mapAttrs (_: test: {
|
|
|
|
|
${system} = test;
|
|
|
|
|
}) (discover (importTest fn args system));
|
|
|
|
|
|
2018-01-22 22:19:06 +01:00
|
|
|
|
in foldAttrs mergeAttrs {} (map discoverForSystem (intersectLists systems supportedSystems));
|
2014-04-14 14:02:44 +02:00
|
|
|
|
|
2013-10-01 15:48:39 +02:00
|
|
|
|
pkgs = import nixpkgs { system = "x86_64-linux"; };
|
2012-04-10 22:28:06 +02:00
|
|
|
|
|
2012-02-23 13:00:05 +01:00
|
|
|
|
|
2013-07-02 13:33:27 +02:00
|
|
|
|
versionModule =
|
2017-04-01 02:00:00 +02:00
|
|
|
|
{ system.nixos.versionSuffix = versionSuffix;
|
|
|
|
|
system.nixos.revision = nixpkgs.rev or nixpkgs.shortRev;
|
2013-10-24 19:58:34 +02:00
|
|
|
|
};
|
2013-07-02 13:33:27 +02:00
|
|
|
|
|
|
|
|
|
|
2012-02-23 13:00:05 +01:00
|
|
|
|
makeIso =
|
2018-07-20 22:56:59 +02:00
|
|
|
|
{ module, type, system, ... }:
|
2012-02-23 13:00:05 +01:00
|
|
|
|
|
2013-10-01 15:48:39 +02:00
|
|
|
|
with import nixpkgs { inherit system; };
|
2012-02-23 13:00:05 +01:00
|
|
|
|
|
2016-03-15 13:48:45 +01:00
|
|
|
|
hydraJob ((import lib/eval-config.nix {
|
|
|
|
|
inherit system;
|
|
|
|
|
modules = [ module versionModule { isoImage.isoBaseName = "nixos-${type}"; } ];
|
|
|
|
|
}).config.system.build.isoImage);
|
2012-02-23 13:00:05 +01:00
|
|
|
|
|
|
|
|
|
|
2018-03-31 19:30:08 +02:00
|
|
|
|
makeSdImage =
|
2018-07-20 22:56:59 +02:00
|
|
|
|
{ module, system, ... }:
|
2018-03-31 19:30:08 +02:00
|
|
|
|
|
|
|
|
|
with import nixpkgs { inherit system; };
|
|
|
|
|
|
|
|
|
|
hydraJob ((import lib/eval-config.nix {
|
|
|
|
|
inherit system;
|
|
|
|
|
modules = [ module versionModule ];
|
|
|
|
|
}).config.system.build.sdImage);
|
|
|
|
|
|
|
|
|
|
|
2012-02-23 13:00:05 +01:00
|
|
|
|
makeSystemTarball =
|
2013-03-26 14:00:31 +01:00
|
|
|
|
{ module, maintainers ? ["viric"], system }:
|
|
|
|
|
|
2013-10-01 15:48:39 +02:00
|
|
|
|
with import nixpkgs { inherit system; };
|
2012-02-23 13:00:05 +01:00
|
|
|
|
|
|
|
|
|
let
|
|
|
|
|
|
|
|
|
|
config = (import lib/eval-config.nix {
|
2012-03-04 21:57:34 +01:00
|
|
|
|
inherit system;
|
2012-02-23 13:00:05 +01:00
|
|
|
|
modules = [ module versionModule ];
|
|
|
|
|
}).config;
|
|
|
|
|
|
|
|
|
|
tarball = config.system.build.tarball;
|
2013-07-02 13:33:27 +02:00
|
|
|
|
|
2012-02-23 13:00:05 +01:00
|
|
|
|
in
|
|
|
|
|
tarball //
|
|
|
|
|
{ meta = {
|
|
|
|
|
description = "NixOS system tarball for ${system} - ${stdenv.platform.name}";
|
2015-03-20 19:23:55 +01:00
|
|
|
|
maintainers = map (x: lib.maintainers.${x}) maintainers;
|
2012-02-23 13:00:05 +01:00
|
|
|
|
};
|
|
|
|
|
inherit config;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2014-09-18 16:21:00 +02:00
|
|
|
|
makeClosure = module: buildFromConfig module (config: config.system.build.toplevel);
|
|
|
|
|
|
|
|
|
|
|
2015-03-20 19:23:55 +01:00
|
|
|
|
buildFromConfig = module: sel: forAllSystems (system: hydraJob (sel (import ./lib/eval-config.nix {
|
2014-08-22 11:37:31 +02:00
|
|
|
|
inherit system;
|
2015-03-20 19:23:55 +01:00
|
|
|
|
modules = [ module versionModule ] ++ singleton
|
2018-07-20 22:56:59 +02:00
|
|
|
|
({ ... }:
|
2015-03-20 19:23:55 +01:00
|
|
|
|
{ fileSystems."/".device = mkDefault "/dev/sda1";
|
|
|
|
|
boot.loader.grub.device = mkDefault "/dev/sda";
|
2014-08-22 11:37:31 +02:00
|
|
|
|
});
|
2014-09-18 16:21:00 +02:00
|
|
|
|
}).config));
|
2014-08-22 11:37:31 +02:00
|
|
|
|
|
2017-04-14 23:59:54 +02:00
|
|
|
|
makeNetboot = config:
|
|
|
|
|
let
|
2018-01-11 17:46:49 +01:00
|
|
|
|
configEvaled = import lib/eval-config.nix config;
|
|
|
|
|
build = configEvaled.config.system.build;
|
|
|
|
|
kernelTarget = configEvaled.pkgs.stdenv.platform.kernelTarget;
|
2017-04-14 23:59:54 +02:00
|
|
|
|
in
|
|
|
|
|
pkgs.symlinkJoin {
|
2018-01-11 17:46:49 +01:00
|
|
|
|
name = "netboot";
|
|
|
|
|
paths = [
|
2017-04-14 23:59:54 +02:00
|
|
|
|
build.netbootRamdisk
|
|
|
|
|
build.kernel
|
|
|
|
|
build.netbootIpxeScript
|
|
|
|
|
];
|
|
|
|
|
postBuild = ''
|
|
|
|
|
mkdir -p $out/nix-support
|
2018-07-25 14:07:58 +02:00
|
|
|
|
echo "file ${kernelTarget} ${build.kernel}/${kernelTarget}" >> $out/nix-support/hydra-build-products
|
|
|
|
|
echo "file initrd ${build.netbootRamdisk}/initrd" >> $out/nix-support/hydra-build-products
|
|
|
|
|
echo "file ipxe ${build.netbootIpxeScript}/netboot.ipxe" >> $out/nix-support/hydra-build-products
|
2017-04-14 23:59:54 +02:00
|
|
|
|
'';
|
2018-01-11 17:47:23 +01:00
|
|
|
|
preferLocalBuild = true;
|
2017-04-14 23:59:54 +02:00
|
|
|
|
};
|
|
|
|
|
|
2013-10-24 19:31:51 +02:00
|
|
|
|
in rec {
|
2008-12-17 14:25:23 +01:00
|
|
|
|
|
2015-06-14 03:55:29 +02:00
|
|
|
|
channel = import lib/make-channel.nix { inherit pkgs nixpkgs version versionSuffix; };
|
2009-08-31 16:56:19 +02:00
|
|
|
|
|
2018-07-20 22:56:59 +02:00
|
|
|
|
manual = buildFromConfig ({ ... }: { }) (config: config.system.build.manual.manual);
|
|
|
|
|
manualEpub = (buildFromConfig ({ ... }: { }) (config: config.system.build.manual.manualEpub));
|
|
|
|
|
manpages = buildFromConfig ({ ... }: { }) (config: config.system.build.manual.manpages);
|
|
|
|
|
manualGeneratedSources = buildFromConfig ({ ... }: { }) (config: config.system.build.manual.generatedSources);
|
|
|
|
|
options = (buildFromConfig ({ ... }: { }) (config: config.system.build.manual.optionsJSON)).x86_64-linux;
|
2016-02-03 12:16:33 +01:00
|
|
|
|
|
2013-03-26 14:00:31 +01:00
|
|
|
|
|
2014-10-09 18:40:37 +02:00
|
|
|
|
# Build the initial ramdisk so Hydra can keep track of its size over time.
|
2018-07-20 22:56:59 +02:00
|
|
|
|
initialRamdisk = buildFromConfig ({ ... }: { }) (config: config.system.build.initialRamdisk);
|
2014-10-09 18:40:37 +02:00
|
|
|
|
|
2018-03-20 02:29:48 +01:00
|
|
|
|
netboot = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system: makeNetboot {
|
2018-01-16 17:42:47 +01:00
|
|
|
|
inherit system;
|
|
|
|
|
modules = [
|
|
|
|
|
./modules/installer/netboot/netboot-minimal.nix
|
|
|
|
|
versionModule
|
|
|
|
|
];
|
|
|
|
|
});
|
2016-04-08 15:53:27 +02:00
|
|
|
|
|
2013-10-31 08:48:57 +01:00
|
|
|
|
iso_minimal = forAllSystems (system: makeIso {
|
2013-03-26 14:00:31 +01:00
|
|
|
|
module = ./modules/installer/cd-dvd/installation-cd-minimal.nix;
|
|
|
|
|
type = "minimal";
|
|
|
|
|
inherit system;
|
2013-04-06 18:24:12 +02:00
|
|
|
|
});
|
|
|
|
|
|
2018-03-20 02:29:48 +01:00
|
|
|
|
iso_graphical = forMatchingSystems [ "x86_64-linux" ] (system: makeIso {
|
2015-10-08 14:53:37 +02:00
|
|
|
|
module = ./modules/installer/cd-dvd/installation-cd-graphical-kde.nix;
|
2013-03-26 14:00:31 +01:00
|
|
|
|
type = "graphical";
|
|
|
|
|
inherit system;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
# A variant with a more recent (but possibly less stable) kernel
|
|
|
|
|
# that might support more hardware.
|
2018-03-20 02:29:48 +01:00
|
|
|
|
iso_minimal_new_kernel = forMatchingSystems [ "x86_64-linux" ] (system: makeIso {
|
2014-06-05 23:00:25 +02:00
|
|
|
|
module = ./modules/installer/cd-dvd/installation-cd-minimal-new-kernel.nix;
|
|
|
|
|
type = "minimal-new-kernel";
|
|
|
|
|
inherit system;
|
|
|
|
|
});
|
|
|
|
|
|
2018-04-15 04:32:59 +02:00
|
|
|
|
sd_image = forMatchingSystems [ "armv6l-linux" "armv7l-linux" "aarch64-linux" ] (system: makeSdImage {
|
|
|
|
|
module = {
|
|
|
|
|
armv6l-linux = ./modules/installer/cd-dvd/sd-image-raspberrypi.nix;
|
|
|
|
|
armv7l-linux = ./modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix;
|
|
|
|
|
aarch64-linux = ./modules/installer/cd-dvd/sd-image-aarch64.nix;
|
|
|
|
|
}.${system};
|
2018-03-31 19:30:08 +02:00
|
|
|
|
inherit system;
|
|
|
|
|
});
|
2013-03-26 14:00:31 +01:00
|
|
|
|
|
2013-10-08 15:40:48 +02:00
|
|
|
|
# A bootable VirtualBox virtual appliance as an OVA file (i.e. packaged OVF).
|
2018-03-20 02:29:48 +01:00
|
|
|
|
ova = forMatchingSystems [ "x86_64-linux" ] (system:
|
2013-08-26 14:06:00 +02:00
|
|
|
|
|
2013-10-01 15:48:39 +02:00
|
|
|
|
with import nixpkgs { inherit system; };
|
2013-07-02 00:23:48 +02:00
|
|
|
|
|
2016-03-15 13:34:41 +01:00
|
|
|
|
hydraJob ((import lib/eval-config.nix {
|
|
|
|
|
inherit system;
|
|
|
|
|
modules =
|
|
|
|
|
[ versionModule
|
|
|
|
|
./modules/installer/virtualbox-demo.nix
|
|
|
|
|
];
|
|
|
|
|
}).config.system.build.virtualBoxOVA)
|
2013-08-26 14:06:00 +02:00
|
|
|
|
|
|
|
|
|
);
|
2013-07-02 00:23:48 +02:00
|
|
|
|
|
|
|
|
|
|
2014-09-25 00:20:53 +02:00
|
|
|
|
# Ensure that all packages used by the minimal NixOS config end up in the channel.
|
|
|
|
|
dummy = forAllSystems (system: pkgs.runCommand "dummy"
|
2014-09-25 17:51:09 +02:00
|
|
|
|
{ toplevel = (import lib/eval-config.nix {
|
2014-09-25 00:20:53 +02:00
|
|
|
|
inherit system;
|
2018-07-20 22:56:59 +02:00
|
|
|
|
modules = singleton ({ ... }:
|
2015-03-20 19:23:55 +01:00
|
|
|
|
{ fileSystems."/".device = mkDefault "/dev/sda1";
|
|
|
|
|
boot.loader.grub.device = mkDefault "/dev/sda";
|
2018-07-25 22:22:54 +02:00
|
|
|
|
system.stateVersion = mkDefault "18.03";
|
2014-09-25 17:51:09 +02:00
|
|
|
|
});
|
|
|
|
|
}).config.system.build.toplevel;
|
2015-12-29 17:21:49 +01:00
|
|
|
|
preferLocalBuild = true;
|
2014-09-25 00:20:53 +02:00
|
|
|
|
}
|
2014-09-25 17:51:09 +02:00
|
|
|
|
"mkdir $out; ln -s $toplevel $out/dummy");
|
2014-09-25 00:20:53 +02:00
|
|
|
|
|
|
|
|
|
|
2013-03-26 14:00:31 +01:00
|
|
|
|
# Provide a tarball that can be unpacked into an SD card, and easily
|
|
|
|
|
# boot that system from uboot (like for the sheevaplug).
|
|
|
|
|
# The pc variant helps preparing the expression for the system tarball
|
|
|
|
|
# in a machine faster than the sheevpalug
|
2015-06-15 14:18:27 +02:00
|
|
|
|
/*
|
2013-10-31 08:48:57 +01:00
|
|
|
|
system_tarball_pc = forAllSystems (system: makeSystemTarball {
|
2013-03-26 14:00:31 +01:00
|
|
|
|
module = ./modules/installer/cd-dvd/system-tarball-pc.nix;
|
|
|
|
|
inherit system;
|
|
|
|
|
});
|
2015-06-15 14:18:27 +02:00
|
|
|
|
*/
|
2013-03-26 14:00:31 +01:00
|
|
|
|
|
2014-12-11 22:58:17 +01:00
|
|
|
|
# Provide container tarball for lxc, libvirt-lxc, docker-lxc, ...
|
2014-12-12 20:28:01 +01:00
|
|
|
|
containerTarball = forAllSystems (system: makeSystemTarball {
|
2014-12-11 22:58:17 +01:00
|
|
|
|
module = ./modules/virtualisation/lxc-container.nix;
|
|
|
|
|
inherit system;
|
|
|
|
|
});
|
|
|
|
|
|
2013-03-26 14:00:31 +01:00
|
|
|
|
/*
|
|
|
|
|
system_tarball_fuloong2f =
|
|
|
|
|
assert builtins.currentSystem == "mips64-linux";
|
|
|
|
|
makeSystemTarball {
|
|
|
|
|
module = ./modules/installer/cd-dvd/system-tarball-fuloong2f.nix;
|
|
|
|
|
system = "mips64-linux";
|
2011-11-08 20:51:39 +01:00
|
|
|
|
};
|
|
|
|
|
|
2013-03-26 14:00:31 +01:00
|
|
|
|
system_tarball_sheevaplug =
|
|
|
|
|
assert builtins.currentSystem == "armv5tel-linux";
|
|
|
|
|
makeSystemTarball {
|
|
|
|
|
module = ./modules/installer/cd-dvd/system-tarball-sheevaplug.nix;
|
|
|
|
|
system = "armv5tel-linux";
|
2012-03-16 13:24:29 +01:00
|
|
|
|
};
|
2013-03-26 14:00:31 +01:00
|
|
|
|
*/
|
2012-02-23 13:00:05 +01:00
|
|
|
|
|
2013-03-26 14:00:31 +01:00
|
|
|
|
|
2014-04-14 14:02:44 +02:00
|
|
|
|
# Run the tests for each platform. You can run a test by doing
|
|
|
|
|
# e.g. ‘nix-build -A tests.login.x86_64-linux’, or equivalently,
|
|
|
|
|
# ‘nix-build tests/login.nix -A result’.
|
2017-10-14 22:38:10 +02:00
|
|
|
|
tests.atd = callTest tests/atd.nix {};
|
2017-07-27 13:24:17 +02:00
|
|
|
|
tests.acme = callTest tests/acme.nix {};
|
2014-04-14 14:02:44 +02:00
|
|
|
|
tests.avahi = callTest tests/avahi.nix {};
|
2017-12-29 02:51:42 +01:00
|
|
|
|
tests.beegfs = callTest tests/beegfs.nix {};
|
2014-04-14 14:02:44 +02:00
|
|
|
|
tests.bittorrent = callTest tests/bittorrent.nix {};
|
2018-05-07 03:05:30 +02:00
|
|
|
|
tests.bind = callTest tests/bind.nix {};
|
2014-10-22 05:50:33 +02:00
|
|
|
|
tests.blivet = callTest tests/blivet.nix {};
|
2016-02-29 20:11:04 +01:00
|
|
|
|
tests.boot = callSubTests tests/boot.nix {};
|
2016-05-06 16:06:22 +02:00
|
|
|
|
tests.boot-stage1 = callTest tests/boot-stage1.nix {};
|
2018-01-02 09:08:38 +01:00
|
|
|
|
tests.borgbackup = callTest tests/borgbackup.nix {};
|
2018-02-17 11:08:47 +01:00
|
|
|
|
tests.buildbot = callTest tests/buildbot.nix {};
|
2018-03-20 02:47:56 +01:00
|
|
|
|
tests.cadvisor = callTestOnMatchingSystems ["x86_64-linux"] tests/cadvisor.nix {};
|
|
|
|
|
tests.ceph = callTestOnMatchingSystems ["x86_64-linux"] tests/ceph.nix {};
|
2018-08-06 14:28:52 +02:00
|
|
|
|
tests.certmgr = callSubTests tests/certmgr.nix {};
|
2018-07-26 16:25:34 +02:00
|
|
|
|
tests.cfssl = callTestOnMatchingSystems ["x86_64-linux"] tests/cfssl.nix {};
|
2018-03-20 02:47:56 +01:00
|
|
|
|
tests.chromium = (callSubTestsOnMatchingSystems ["x86_64-linux"] tests/chromium.nix {}).stable or {};
|
2016-11-12 12:47:43 +01:00
|
|
|
|
tests.cjdns = callTest tests/cjdns.nix {};
|
2017-02-25 15:32:06 +01:00
|
|
|
|
tests.cloud-init = callTest tests/cloud-init.nix {};
|
2016-03-18 15:29:45 +01:00
|
|
|
|
tests.containers-ipv4 = callTest tests/containers-ipv4.nix {};
|
2016-01-31 21:45:05 +01:00
|
|
|
|
tests.containers-ipv6 = callTest tests/containers-ipv6.nix {};
|
|
|
|
|
tests.containers-bridge = callTest tests/containers-bridge.nix {};
|
2016-03-18 15:29:45 +01:00
|
|
|
|
tests.containers-imperative = callTest tests/containers-imperative.nix {};
|
2016-05-07 00:04:28 +02:00
|
|
|
|
tests.containers-extra_veth = callTest tests/containers-extra_veth.nix {};
|
2016-09-30 10:45:48 +02:00
|
|
|
|
tests.containers-physical_interfaces = callTest tests/containers-physical_interfaces.nix {};
|
2017-02-11 16:46:55 +01:00
|
|
|
|
tests.containers-restart_networking = callTest tests/containers-restart_networking.nix {};
|
2016-11-22 15:04:52 +01:00
|
|
|
|
tests.containers-tmpfs = callTest tests/containers-tmpfs.nix {};
|
2016-12-12 14:25:28 +01:00
|
|
|
|
tests.containers-hosts = callTest tests/containers-hosts.nix {};
|
|
|
|
|
tests.containers-macvlans = callTest tests/containers-macvlans.nix {};
|
2017-11-19 17:36:47 +01:00
|
|
|
|
tests.couchdb = callTest tests/couchdb.nix {};
|
2018-01-10 01:52:15 +01:00
|
|
|
|
tests.deluge = callTest tests/deluge.nix {};
|
2018-04-26 06:09:05 +02:00
|
|
|
|
tests.dhparams = callTest tests/dhparams.nix {};
|
2018-03-20 02:47:56 +01:00
|
|
|
|
tests.docker = callTestOnMatchingSystems ["x86_64-linux"] tests/docker.nix {};
|
|
|
|
|
tests.docker-tools = callTestOnMatchingSystems ["x86_64-linux"] tests/docker-tools.nix {};
|
2018-04-14 13:41:23 +02:00
|
|
|
|
tests.docker-tools-overlay = callTestOnMatchingSystems ["x86_64-linux"] tests/docker-tools-overlay.nix {};
|
2018-03-20 02:47:56 +01:00
|
|
|
|
tests.docker-edge = callTestOnMatchingSystems ["x86_64-linux"] tests/docker-edge.nix {};
|
2018-08-06 12:16:56 +02:00
|
|
|
|
tests.docker-registry = callTest tests/docker-registry.nix {};
|
2017-09-17 03:11:01 +02:00
|
|
|
|
tests.dovecot = callTest tests/dovecot.nix {};
|
2018-03-20 02:47:56 +01:00
|
|
|
|
tests.dnscrypt-proxy = callTestOnMatchingSystems ["x86_64-linux"] tests/dnscrypt-proxy.nix {};
|
2016-07-13 14:57:13 +02:00
|
|
|
|
tests.ecryptfs = callTest tests/ecryptfs.nix {};
|
2018-03-20 02:47:56 +01:00
|
|
|
|
tests.etcd = callTestOnMatchingSystems ["x86_64-linux"] tests/etcd.nix {};
|
|
|
|
|
tests.ec2-nixops = (callSubTestsOnMatchingSystems ["x86_64-linux"] tests/ec2.nix {}).boot-ec2-nixops or {};
|
|
|
|
|
tests.ec2-config = (callSubTestsOnMatchingSystems ["x86_64-linux"] tests/ec2.nix {}).boot-ec2-config or {};
|
|
|
|
|
tests.elk = callSubTestsOnMatchingSystems ["x86_64-linux"] tests/elk.nix {};
|
2017-09-06 01:05:37 +02:00
|
|
|
|
tests.env = callTest tests/env.nix {};
|
2016-08-29 15:18:25 +02:00
|
|
|
|
tests.ferm = callTest tests/ferm.nix {};
|
2014-04-14 14:02:44 +02:00
|
|
|
|
tests.firefox = callTest tests/firefox.nix {};
|
2018-02-13 17:52:49 +01:00
|
|
|
|
tests.flatpak = callTest tests/flatpak.nix {};
|
2014-04-14 14:02:44 +02:00
|
|
|
|
tests.firewall = callTest tests/firewall.nix {};
|
2018-02-17 04:09:15 +01:00
|
|
|
|
tests.fwupd = callTest tests/fwupd.nix {};
|
2018-06-01 00:17:38 +02:00
|
|
|
|
tests.gdk-pixbuf = callTest tests/gdk-pixbuf.nix {};
|
2015-01-25 22:29:37 +01:00
|
|
|
|
#tests.gitlab = callTest tests/gitlab.nix {};
|
2017-10-14 10:42:37 +02:00
|
|
|
|
tests.gitolite = callTest tests/gitolite.nix {};
|
2018-02-14 22:19:56 +01:00
|
|
|
|
tests.gjs = callTest tests/gjs.nix {};
|
2016-07-23 00:29:18 +02:00
|
|
|
|
tests.gocd-agent = callTest tests/gocd-agent.nix {};
|
|
|
|
|
tests.gocd-server = callTest tests/gocd-server.nix {};
|
2014-04-14 14:02:44 +02:00
|
|
|
|
tests.gnome3 = callTest tests/gnome3.nix {};
|
2015-09-15 14:25:19 +02:00
|
|
|
|
tests.gnome3-gdm = callTest tests/gnome3-gdm.nix {};
|
2017-10-21 22:44:15 +02:00
|
|
|
|
tests.grafana = callTest tests/grafana.nix {};
|
2017-09-30 21:12:24 +02:00
|
|
|
|
tests.graphite = callTest tests/graphite.nix {};
|
2018-05-21 03:09:31 +02:00
|
|
|
|
tests.hadoop.hdfs = callTestOnMatchingSystems [ "x86_64-linux" ] tests/hadoop/hdfs.nix {};
|
|
|
|
|
tests.hadoop.yarn = callTestOnMatchingSystems [ "x86_64-linux" ] tests/hadoop/yarn.nix {};
|
2017-04-30 08:38:47 +02:00
|
|
|
|
tests.hardened = callTest tests/hardened.nix { };
|
2018-06-08 22:30:24 +02:00
|
|
|
|
tests.haproxy = callTest tests/haproxy.nix {};
|
2015-03-05 15:21:27 +01:00
|
|
|
|
tests.hibernate = callTest tests/hibernate.nix {};
|
2018-05-01 11:36:36 +02:00
|
|
|
|
tests.hitch = callTest tests/hitch {};
|
2018-01-26 01:41:36 +01:00
|
|
|
|
tests.home-assistant = callTest tests/home-assistant.nix { };
|
2016-10-13 00:58:56 +02:00
|
|
|
|
tests.hound = callTest tests/hound.nix {};
|
2017-12-02 04:06:16 +01:00
|
|
|
|
tests.hocker-fetchdocker = callTest tests/hocker-fetchdocker {};
|
2018-05-18 17:11:29 +02:00
|
|
|
|
tests.hydra = callTest tests/hydra {};
|
2015-03-05 05:16:26 +01:00
|
|
|
|
tests.i3wm = callTest tests/i3wm.nix {};
|
2018-04-07 15:06:51 +02:00
|
|
|
|
tests.iftop = callTest tests/iftop.nix {};
|
2017-11-27 09:14:17 +01:00
|
|
|
|
tests.initrd-network-ssh = callTest tests/initrd-network-ssh {};
|
2016-02-29 20:11:04 +01:00
|
|
|
|
tests.installer = callSubTests tests/installer.nix {};
|
2014-05-27 22:54:43 +02:00
|
|
|
|
tests.influxdb = callTest tests/influxdb.nix {};
|
2014-04-14 14:02:44 +02:00
|
|
|
|
tests.ipv6 = callTest tests/ipv6.nix {};
|
|
|
|
|
tests.jenkins = callTest tests/jenkins.nix {};
|
2018-05-19 05:58:52 +02:00
|
|
|
|
tests.ostree = callTest tests/ostree.nix {};
|
2018-04-30 11:59:53 +02:00
|
|
|
|
tests.osquery = callTest tests/osquery.nix {};
|
2017-03-01 02:09:56 +01:00
|
|
|
|
tests.plasma5 = callTest tests/plasma5.nix {};
|
2018-02-14 21:34:50 +01:00
|
|
|
|
tests.plotinus = callTest tests/plotinus.nix {};
|
2016-03-31 09:26:58 +02:00
|
|
|
|
tests.keymap = callSubTests tests/keymap.nix {};
|
2016-02-02 19:03:13 +01:00
|
|
|
|
tests.initrdNetwork = callTest tests/initrd-network.nix {};
|
2018-05-12 02:16:25 +02:00
|
|
|
|
tests.kafka = callSubTests tests/kafka.nix {};
|
2017-09-08 01:43:51 +02:00
|
|
|
|
tests.kernel-copperhead = callTest tests/kernel-copperhead.nix {};
|
2017-09-07 21:11:06 +02:00
|
|
|
|
tests.kernel-latest = callTest tests/kernel-latest.nix {};
|
|
|
|
|
tests.kernel-lts = callTest tests/kernel-lts.nix {};
|
2018-03-17 06:35:35 +01:00
|
|
|
|
tests.kubernetes.dns = callSubTestsOnMatchingSystems ["x86_64-linux"] tests/kubernetes/dns.nix {};
|
|
|
|
|
## kubernetes.e2e should eventually replace kubernetes.rbac when it works
|
|
|
|
|
#tests.kubernetes.e2e = callSubTestsOnMatchingSystems ["x86_64-linux"] tests/kubernetes/e2e.nix {};
|
|
|
|
|
tests.kubernetes.rbac = callSubTestsOnMatchingSystems ["x86_64-linux"] tests/kubernetes/rbac.nix {};
|
2014-04-14 14:02:44 +02:00
|
|
|
|
tests.latestKernel.login = callTest tests/login.nix { latestKernel = true; };
|
2017-05-26 21:42:24 +02:00
|
|
|
|
tests.ldap = callTest tests/ldap.nix {};
|
2015-08-17 10:48:04 +02:00
|
|
|
|
#tests.lightdm = callTest tests/lightdm.nix {};
|
2014-04-14 14:02:44 +02:00
|
|
|
|
tests.login = callTest tests/login.nix {};
|
2014-09-05 15:28:55 +02:00
|
|
|
|
#tests.logstash = callTest tests/logstash.nix {};
|
2015-09-08 09:17:21 +02:00
|
|
|
|
tests.mathics = callTest tests/mathics.nix {};
|
2017-11-04 19:21:55 +01:00
|
|
|
|
tests.matrix-synapse = callTest tests/matrix-synapse.nix {};
|
2018-06-09 02:05:21 +02:00
|
|
|
|
tests.memcached = callTest tests/memcached.nix {};
|
2017-09-28 14:25:17 +02:00
|
|
|
|
tests.mesos = callTest tests/mesos.nix {};
|
2014-04-14 14:02:44 +02:00
|
|
|
|
tests.misc = callTest tests/misc.nix {};
|
2016-09-13 17:38:45 +02:00
|
|
|
|
tests.mongodb = callTest tests/mongodb.nix {};
|
2018-06-16 22:52:25 +02:00
|
|
|
|
tests.mpd = callTest tests/mpd.nix {};
|
2014-04-14 14:02:44 +02:00
|
|
|
|
tests.mumble = callTest tests/mumble.nix {};
|
|
|
|
|
tests.munin = callTest tests/munin.nix {};
|
2017-11-19 19:20:50 +01:00
|
|
|
|
tests.mutableUsers = callTest tests/mutable-users.nix {};
|
2014-04-14 14:02:44 +02:00
|
|
|
|
tests.mysql = callTest tests/mysql.nix {};
|
2017-09-23 16:58:07 +02:00
|
|
|
|
tests.mysqlBackup = callTest tests/mysql-backup.nix {};
|
2014-04-14 14:02:44 +02:00
|
|
|
|
tests.mysqlReplication = callTest tests/mysql-replication.nix {};
|
2014-09-18 22:34:29 +02:00
|
|
|
|
tests.nat.firewall = callTest tests/nat.nix { withFirewall = true; };
|
2017-01-22 19:42:59 +01:00
|
|
|
|
tests.nat.firewall-conntrack = callTest tests/nat.nix { withFirewall = true; withConntrackHelpers = true; };
|
2014-09-18 22:34:29 +02:00
|
|
|
|
tests.nat.standalone = callTest tests/nat.nix { withFirewall = false; };
|
2017-10-18 01:51:41 +02:00
|
|
|
|
tests.netdata = callTest tests/netdata.nix { };
|
2016-02-29 20:11:04 +01:00
|
|
|
|
tests.networking.networkd = callSubTests tests/networking.nix { networkd = true; };
|
|
|
|
|
tests.networking.scripted = callSubTests tests/networking.nix { networkd = false; };
|
2014-11-30 15:22:12 +01:00
|
|
|
|
# TODO: put in networking.nix after the test becomes more complete
|
|
|
|
|
tests.networkingProxy = callTest tests/networking-proxy.nix {};
|
2018-05-15 14:10:29 +02:00
|
|
|
|
tests.nexus = callTest tests/nexus.nix { };
|
2014-04-14 14:02:44 +02:00
|
|
|
|
tests.nfs3 = callTest tests/nfs.nix { version = 3; };
|
2015-04-02 17:44:48 +02:00
|
|
|
|
tests.nfs4 = callTest tests/nfs.nix { version = 4; };
|
2017-03-20 19:05:22 +01:00
|
|
|
|
tests.nginx = callTest tests/nginx.nix { };
|
2017-11-16 19:21:02 +01:00
|
|
|
|
tests.nghttpx = callTest tests/nghttpx.nix { };
|
2018-02-28 22:55:00 +01:00
|
|
|
|
tests.nix-ssh-serve = callTest tests/nix-ssh-serve.nix { };
|
2018-03-20 02:47:56 +01:00
|
|
|
|
tests.novacomd = callTestOnMatchingSystems ["x86_64-linux"] tests/novacomd.nix { };
|
2016-11-06 10:33:21 +01:00
|
|
|
|
tests.leaps = callTest tests/leaps.nix { };
|
2014-09-05 02:52:05 +02:00
|
|
|
|
tests.nsd = callTest tests/nsd.nix {};
|
2014-04-14 14:02:44 +02:00
|
|
|
|
tests.openssh = callTest tests/openssh.nix {};
|
2018-03-03 19:53:16 +01:00
|
|
|
|
tests.openldap = callTest tests/openldap.nix {};
|
2018-06-21 13:04:24 +02:00
|
|
|
|
tests.opensmtpd = callTest tests/opensmtpd.nix {};
|
2017-10-31 17:53:49 +01:00
|
|
|
|
tests.owncloud = callTest tests/owncloud.nix {};
|
2017-02-13 00:17:08 +01:00
|
|
|
|
tests.pam-oath-login = callTest tests/pam-oath-login.nix {};
|
2014-12-01 16:45:38 +01:00
|
|
|
|
tests.peerflix = callTest tests/peerflix.nix {};
|
2017-11-12 08:05:27 +01:00
|
|
|
|
tests.php-pcre = callTest tests/php-pcre.nix {};
|
2017-02-11 05:57:57 +01:00
|
|
|
|
tests.postgresql = callSubTests tests/postgresql.nix {};
|
2017-11-02 20:35:05 +01:00
|
|
|
|
tests.pgmanage = callTest tests/pgmanage.nix {};
|
2017-10-11 18:06:20 +02:00
|
|
|
|
tests.postgis = callTest tests/postgis.nix {};
|
2018-02-17 14:36:28 +01:00
|
|
|
|
tests.powerdns = callTest tests/powerdns.nix {};
|
2017-09-28 23:16:18 +02:00
|
|
|
|
#tests.pgjwt = callTest tests/pgjwt.nix {};
|
2018-02-09 19:40:39 +01:00
|
|
|
|
tests.predictable-interface-names = callSubTests tests/predictable-interface-names.nix {};
|
2014-04-14 14:02:44 +02:00
|
|
|
|
tests.printing = callTest tests/printing.nix {};
|
2017-10-16 19:36:13 +02:00
|
|
|
|
tests.prometheus = callTest tests/prometheus.nix {};
|
2018-03-22 03:46:02 +01:00
|
|
|
|
tests.prosody = callTest tests/prosody.nix {};
|
2014-04-14 14:02:44 +02:00
|
|
|
|
tests.proxy = callTest tests/proxy.nix {};
|
2018-03-25 21:19:21 +02:00
|
|
|
|
tests.quagga = callTest tests/quagga.nix {};
|
2014-04-14 14:02:44 +02:00
|
|
|
|
tests.quake3 = callTest tests/quake3.nix {};
|
2018-02-19 18:54:16 +01:00
|
|
|
|
tests.rabbitmq = callTest tests/rabbitmq.nix {};
|
2017-07-25 09:01:08 +02:00
|
|
|
|
tests.radicale = callTest tests/radicale.nix {};
|
2018-02-02 01:35:32 +01:00
|
|
|
|
tests.rspamd = callSubTests tests/rspamd.nix {};
|
2014-04-14 14:02:44 +02:00
|
|
|
|
tests.runInMachine = callTest tests/run-in-machine.nix {};
|
2018-02-10 08:52:03 +01:00
|
|
|
|
tests.rxe = callTest tests/rxe.nix {};
|
2016-09-30 21:24:18 +02:00
|
|
|
|
tests.samba = callTest tests/samba.nix {};
|
2017-03-24 16:38:16 +01:00
|
|
|
|
tests.sddm = callSubTests tests/sddm.nix {};
|
2014-04-14 14:02:44 +02:00
|
|
|
|
tests.simple = callTest tests/simple.nix {};
|
2017-04-23 19:14:44 +02:00
|
|
|
|
tests.slim = callTest tests/slim.nix {};
|
2018-05-24 14:46:56 +02:00
|
|
|
|
tests.slurm = callTest tests/slurm.nix {};
|
2016-07-21 01:07:59 +02:00
|
|
|
|
tests.smokeping = callTest tests/smokeping.nix {};
|
2017-07-05 16:19:32 +02:00
|
|
|
|
tests.snapper = callTest tests/snapper.nix {};
|
2017-11-26 01:15:10 +01:00
|
|
|
|
tests.statsd = callTest tests/statsd.nix {};
|
2017-08-05 14:01:52 +02:00
|
|
|
|
tests.strongswan-swanctl = callTest tests/strongswan-swanctl.nix {};
|
2018-01-17 15:56:08 +01:00
|
|
|
|
tests.sudo = callTest tests/sudo.nix {};
|
systemd: Update to latest NixOS branch
Updated to the latest version of the nixos-v237 branch, which fixes two
things:
* Make sure that systemd looks in /etc for configuration files.
https://github.com/NixOS/systemd/pull/15
* Fix handling of the x-initrd.mount option.
https://github.com/NixOS/systemd/pull/16
I've added NixOS VM tests for both to ensure we won't run into
regressions. The newly added systemd test only tests for that and is by
no means exhaustive, but it's a start.
Personally I only wanted to fix the former issue, because that's the one
I've been debugging. After sending in a pull request for our systemd
fork (https://github.com/NixOS/systemd/pull/17) I got a notice from
@Mic92, that he already fixed this and his fix was even better as it's
even suitable for upstream (so we hopefully can drop that patch
someday).
The reason why the second one came in was simply because it has been
merged before the former, but I thought it would be a good idea to have
tests for that as well.
In addition I've removed the sysconfdir=$out/etc entry to make sure the
default (/etc) is used. Installing is still done to $out, because those
directories that were previously into sysconfdir now get into
factoryconfdir.
Quote from commit NixOS/systemd@98067cc806ae0d2759cdd2334f230cd8548e531:
By default systemd should read all its configuration from /etc.
Therefore we rely on -Dsysconfdir=/etc in meson as default value.
Unfortunately this would also lead to installation of systemd's own
configuration files to `/etc` whereas we are limited to /nix/store. To
counter that this commit introduces two new configuration variables
`factoryconfdir` and `factorypkgconfdir` to install systemd's own
configuration into nix store again, while having executables looking
up files in /etc.
Tested this change against all of the NixOS VM tests we have in
nixos/release.nix. Between this change and its parent no new tests were
failing (although a lot of them were flaky).
Signed-off-by: aszlig <aszlig@nix.build>
Cc: @Mic92, @tk-ecotelecom, @edolstra, @fpletz
Fixes: #35415
Fixes: #35268
2018-03-03 07:10:22 +01:00
|
|
|
|
tests.systemd = callTest tests/systemd.nix {};
|
2017-11-19 19:50:08 +01:00
|
|
|
|
tests.switchTest = callTest tests/switch-test.nix {};
|
2016-04-05 17:52:55 +02:00
|
|
|
|
tests.taskserver = callTest tests/taskserver.nix {};
|
2014-04-14 14:02:44 +02:00
|
|
|
|
tests.tomcat = callTest tests/tomcat.nix {};
|
2018-06-18 19:59:19 +02:00
|
|
|
|
tests.tor = callTest tests/tor.nix {};
|
2018-03-18 18:21:24 +01:00
|
|
|
|
tests.transmission = callTest tests/transmission.nix {};
|
2014-04-19 14:37:05 +02:00
|
|
|
|
tests.udisks2 = callTest tests/udisks2.nix {};
|
2017-12-04 12:42:30 +01:00
|
|
|
|
tests.vault = callTest tests/vault.nix {};
|
2018-03-20 02:47:56 +01:00
|
|
|
|
tests.virtualbox = callSubTestsOnMatchingSystems ["x86_64-linux"] tests/virtualbox.nix {};
|
2017-03-18 11:10:49 +01:00
|
|
|
|
tests.wordpress = callTest tests/wordpress.nix {};
|
2018-03-10 00:08:27 +01:00
|
|
|
|
tests.xautolock = callTest tests/xautolock.nix {};
|
2018-02-22 06:29:51 +01:00
|
|
|
|
tests.xdg-desktop-portal = callTest tests/xdg-desktop-portal.nix {};
|
2014-04-14 14:02:44 +02:00
|
|
|
|
tests.xfce = callTest tests/xfce.nix {};
|
2017-09-04 20:03:20 +02:00
|
|
|
|
tests.xmonad = callTest tests/xmonad.nix {};
|
2018-02-26 20:55:07 +01:00
|
|
|
|
tests.xrdp = callTest tests/xrdp.nix {};
|
2018-05-18 18:24:53 +02:00
|
|
|
|
tests.xss-lock = callTest tests/xss-lock.nix {};
|
2017-12-12 01:14:00 +01:00
|
|
|
|
tests.yabar = callTest tests/yabar.nix {};
|
2017-11-02 18:59:10 +01:00
|
|
|
|
tests.zookeeper = callTest tests/zookeeper.nix {};
|
2018-05-30 18:13:16 +02:00
|
|
|
|
tests.morty = callTest tests/morty.nix { };
|
2014-08-22 11:37:31 +02:00
|
|
|
|
|
|
|
|
|
/* Build a bunch of typical closures so that Hydra can keep track of
|
|
|
|
|
the evolution of closure sizes. */
|
|
|
|
|
|
|
|
|
|
closures = {
|
|
|
|
|
|
2018-07-20 22:56:59 +02:00
|
|
|
|
smallContainer = makeClosure ({ ... }:
|
2014-08-22 11:37:31 +02:00
|
|
|
|
{ boot.isContainer = true;
|
|
|
|
|
services.openssh.enable = true;
|
|
|
|
|
});
|
|
|
|
|
|
2018-07-20 22:56:59 +02:00
|
|
|
|
tinyContainer = makeClosure ({ ... }:
|
2014-08-22 11:37:31 +02:00
|
|
|
|
{ boot.isContainer = true;
|
|
|
|
|
imports = [ modules/profiles/minimal.nix ];
|
|
|
|
|
});
|
|
|
|
|
|
2018-07-20 22:56:59 +02:00
|
|
|
|
ec2 = makeClosure ({ ... }:
|
2014-08-22 11:37:31 +02:00
|
|
|
|
{ imports = [ modules/virtualisation/amazon-image.nix ];
|
|
|
|
|
});
|
|
|
|
|
|
2018-07-20 22:56:59 +02:00
|
|
|
|
kde = makeClosure ({ ... }:
|
2014-08-22 11:37:31 +02:00
|
|
|
|
{ services.xserver.enable = true;
|
2017-02-10 03:25:03 +01:00
|
|
|
|
services.xserver.displayManager.sddm.enable = true;
|
2017-03-03 14:24:58 +01:00
|
|
|
|
services.xserver.desktopManager.plasma5.enable = true;
|
2014-08-22 11:37:31 +02:00
|
|
|
|
});
|
|
|
|
|
|
2018-07-20 22:56:59 +02:00
|
|
|
|
xfce = makeClosure ({ ... }:
|
2014-08-22 11:37:31 +02:00
|
|
|
|
{ services.xserver.enable = true;
|
|
|
|
|
services.xserver.desktopManager.xfce.enable = true;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
# Linux/Apache/PostgreSQL/PHP stack.
|
|
|
|
|
lapp = makeClosure ({ pkgs, ... }:
|
|
|
|
|
{ services.httpd.enable = true;
|
|
|
|
|
services.httpd.adminAddr = "foo@example.org";
|
|
|
|
|
services.postgresql.enable = true;
|
|
|
|
|
services.postgresql.package = pkgs.postgresql93;
|
|
|
|
|
environment.systemPackages = [ pkgs.php ];
|
|
|
|
|
});
|
|
|
|
|
};
|
2013-03-26 14:00:31 +01:00
|
|
|
|
}
|