nixpkgs/nixos/release-small.nix
Martin Weinelt 9426d90c67
nixos/release-small: stop building amazon image
Rebuilding images multiple times on the small channels is too expensive
and makes them slower than they could be. Consuming the image from the
full release channel is probably good enough.
2024-08-04 23:50:46 +02:00

147 lines
3.5 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.
#
# Individual jobs can be tested by running:
#
# nix-build nixos/release-small.nix -A <jobname>
#
{ nixpkgs ? { outPath = (import ../lib).cleanSource ./..; revCount = 56789; shortRev = "gfedcba"; }
, stableBranch ? false
, supportedSystems ? [ "aarch64-linux" "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 options iso_minimal dummy;
tests = {
inherit (nixos'.tests)
acme
containers-imperative
containers-ip
firewall
ipv6
login
misc
nat
nfs4
openssh
php
predictable-interface-names
proxy
simple;
installer = {
inherit (nixos'.tests.installer)
lvm
separateBoot
simple;
};
boot = {
inherit (nixos'.tests.boot)
biosCdrom
uefiCdrom;
};
};
};
nixpkgs = {
inherit (nixpkgs')
apacheHttpd
cmake
cryptsetup
emacs
gettext
git
imagemagick
jdk
linux
mariadb
nginx
nodejs
openssh
opensshTest
php
postgresql
python
release-checks
rsyslog
stdenv
subversion
tarball
vim
tests-stdenv-gcc-stageCompare;
};
tested = let
onSupported = x: map (system: "${x}.${system}") supportedSystems;
onSystems = systems: x: map (system: "${x}.${system}")
(pkgs.lib.intersectLists systems supportedSystems);
in pkgs.releaseTools.aggregate {
name = "nixos-${nixos.channel.version}";
meta = {
description = "Release-critical builds for the NixOS channel";
maintainers = [ ];
};
constituents = lib.flatten [
[
"nixos.channel"
"nixpkgs.tarball"
"nixpkgs.release-checks"
]
(map (onSystems [ "x86_64-linux" ]) [
"nixos.tests.boot.biosCdrom"
"nixos.tests.installer.lvm"
"nixos.tests.installer.separateBoot"
"nixos.tests.installer.simple"
])
(map onSupported [
"nixos.dummy"
"nixos.iso_minimal"
"nixos.manual"
"nixos.tests.acme"
"nixos.tests.boot.uefiCdrom"
"nixos.tests.containers-imperative"
"nixos.tests.containers-ip"
"nixos.tests.firewall"
"nixos.tests.ipv6"
"nixos.tests.login"
"nixos.tests.misc"
"nixos.tests.nat.firewall"
"nixos.tests.nat.standalone"
"nixos.tests.nfs4.simple"
"nixos.tests.openssh"
"nixos.tests.php.fpm"
"nixos.tests.php.pcre"
"nixos.tests.predictable-interface-names.predictable"
"nixos.tests.predictable-interface-names.predictableNetworkd"
"nixos.tests.predictable-interface-names.unpredictable"
"nixos.tests.predictable-interface-names.unpredictableNetworkd"
"nixos.tests.proxy"
"nixos.tests.simple"
"nixpkgs.jdk"
"nixpkgs.tests-stdenv-gcc-stageCompare"
"nixpkgs.opensshTest"
])
];
};
}