1# This jobset is used to generate a NixOS channel that contains a
2# small subset of Nixpkgs, mostly useful for servers that need fast
3# security updates.
4#
5# Individual jobs can be tested by running:
6#
7# nix-build nixos/release-small.nix -A <jobname>
8#
9{ nixpkgs ? { outPath = (import ../lib).cleanSource ./..; revCount = 56789; shortRev = "gfedcba"; }
10, stableBranch ? false
11, supportedSystems ? [ "aarch64-linux" "x86_64-linux" ] # no i686-linux
12}:
13
14let
15
16 nixpkgsSrc = nixpkgs; # urgh
17
18 pkgs = import ./.. { system = "x86_64-linux"; };
19
20 lib = pkgs.lib;
21
22 nixos' = import ./release.nix {
23 inherit stableBranch supportedSystems;
24 nixpkgs = nixpkgsSrc;
25 };
26
27 nixpkgs' = builtins.removeAttrs (import ../pkgs/top-level/release.nix {
28 inherit supportedSystems;
29 nixpkgs = nixpkgsSrc;
30 }) [ "unstable" ];
31
32in rec {
33
34 nixos = {
35 inherit (nixos') channel manual options iso_minimal amazonImage dummy;
36 tests = {
37 inherit (nixos'.tests)
38 acme
39 containers-imperative
40 containers-ip
41 firewall
42 ipv6
43 login
44 misc
45 nat
46 nfs3
47 openssh
48 php
49 predictable-interface-names
50 proxy
51 simple;
52 installer = {
53 inherit (nixos'.tests.installer)
54 lvm
55 separateBoot
56 simple;
57 };
58 boot = {
59 inherit (nixos'.tests.boot)
60 biosCdrom
61 uefiCdrom;
62 };
63 };
64 };
65
66 nixpkgs = {
67 inherit (nixpkgs')
68 apacheHttpd
69 cmake
70 cryptsetup
71 emacs
72 gettext
73 git
74 imagemagick
75 jdk
76 linux
77 mariadb
78 nginx
79 nodejs
80 openssh
81 php
82 postgresql
83 python
84 rsyslog
85 stdenv
86 subversion
87 tarball
88 vim
89 tests-stdenv-gcc-stageCompare;
90 };
91
92 tested = let
93 onSupported = x: map (system: "${x}.${system}") supportedSystems;
94 onSystems = systems: x: map (system: "${x}.${system}")
95 (pkgs.lib.intersectLists systems supportedSystems);
96 in pkgs.releaseTools.aggregate {
97 name = "nixos-${nixos.channel.version}";
98 meta = {
99 description = "Release-critical builds for the NixOS channel";
100 maintainers = [ lib.maintainers.eelco ];
101 };
102 constituents = lib.flatten [
103 [
104 "nixos.channel"
105 "nixpkgs.tarball"
106 ]
107 (map (onSystems [ "x86_64-linux" ]) [
108 "nixos.tests.boot.biosCdrom"
109 "nixos.tests.installer.lvm"
110 "nixos.tests.installer.separateBoot"
111 "nixos.tests.installer.simple"
112 ])
113 (map onSupported [
114 "nixos.dummy"
115 "nixos.iso_minimal"
116 "nixos.amazonImage"
117 "nixos.manual"
118 "nixos.tests.acme"
119 "nixos.tests.boot.uefiCdrom"
120 "nixos.tests.containers-imperative"
121 "nixos.tests.containers-ip"
122 "nixos.tests.firewall"
123 "nixos.tests.ipv6"
124 "nixos.tests.login"
125 "nixos.tests.misc"
126 "nixos.tests.nat.firewall"
127 "nixos.tests.nat.standalone"
128 "nixos.tests.nfs3.simple"
129 "nixos.tests.openssh"
130 "nixos.tests.php.fpm"
131 "nixos.tests.php.pcre"
132 "nixos.tests.predictable-interface-names.predictable"
133 "nixos.tests.predictable-interface-names.predictableNetworkd"
134 "nixos.tests.predictable-interface-names.unpredictable"
135 "nixos.tests.predictable-interface-names.unpredictableNetworkd"
136 "nixos.tests.proxy"
137 "nixos.tests.simple"
138 "nixpkgs.jdk"
139 "nixpkgs.tests-stdenv-gcc-stageCompare"
140 ])
141 ];
142 };
143
144}