100 lines
2 KiB
Nix
100 lines
2 KiB
Nix
# This jobset is used to generate a NixOS channel that contains a
|
|
# small subset of Nixpkgs, mostly useful for servers that need fast
|
|
# security updates.
|
|
|
|
{ nixpkgs ? { outPath = (import ../lib).cleanSource ./..; revCount = 56789; shortRev = "gfedcba"; }
|
|
, stableBranch ? false
|
|
, supportedSystems ? [ "x86_64-linux" ] # no i686-linux
|
|
}:
|
|
|
|
let
|
|
|
|
nixpkgsSrc = nixpkgs; # urgh
|
|
|
|
pkgs = import ./.. { system = "x86_64-linux"; };
|
|
|
|
lib = pkgs.lib;
|
|
|
|
nixos' = import ./release.nix {
|
|
inherit stableBranch supportedSystems;
|
|
nixpkgs = nixpkgsSrc;
|
|
};
|
|
|
|
nixpkgs' = builtins.removeAttrs (import ../pkgs/top-level/release.nix {
|
|
inherit supportedSystems;
|
|
nixpkgs = nixpkgsSrc;
|
|
}) [ "unstable" ];
|
|
|
|
in rec {
|
|
|
|
nixos = {
|
|
inherit (nixos') channel manual iso_minimal dummy;
|
|
tests = {
|
|
inherit (nixos'.tests)
|
|
containers-imperative
|
|
containers-ip
|
|
firewall
|
|
ipv6
|
|
login
|
|
misc
|
|
nat
|
|
nfs3
|
|
openssh
|
|
php-pcre
|
|
predictable-interface-names
|
|
proxy
|
|
simple;
|
|
installer = {
|
|
inherit (nixos'.tests.installer)
|
|
lvm
|
|
separateBoot
|
|
simple;
|
|
};
|
|
boot = {
|
|
inherit (nixos'.tests.boot)
|
|
biosCdrom;
|
|
};
|
|
};
|
|
};
|
|
|
|
nixpkgs = {
|
|
inherit (nixpkgs')
|
|
apacheHttpd
|
|
cmake
|
|
cryptsetup
|
|
emacs
|
|
gettext
|
|
git
|
|
imagemagick
|
|
jdk
|
|
linux
|
|
mysql
|
|
nginx
|
|
nodejs
|
|
openssh
|
|
php
|
|
postgresql
|
|
python
|
|
rsyslog
|
|
stdenv
|
|
subversion
|
|
tarball
|
|
vim;
|
|
};
|
|
|
|
tested = lib.hydraJob (pkgs.releaseTools.aggregate {
|
|
name = "nixos-${nixos.channel.version}";
|
|
meta = {
|
|
description = "Release-critical builds for the NixOS channel";
|
|
maintainers = [ lib.maintainers.eelco ];
|
|
};
|
|
constituents =
|
|
let all = x: map (system: x.${system}) supportedSystems; in
|
|
[ nixpkgs.tarball
|
|
(all nixpkgs.jdk)
|
|
]
|
|
++ lib.collect lib.isDerivation nixos;
|
|
});
|
|
|
|
}
|