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 nfs4
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 release-checks
85 rsyslog
86 stdenv
87 subversion
88 tarball
89 vim
90 tests-stdenv-gcc-stageCompare;
91 };
92
93 tested = let
94 onSupported = x: map (system: "${x}.${system}") supportedSystems;
95 onSystems = systems: x: map (system: "${x}.${system}")
96 (pkgs.lib.intersectLists systems supportedSystems);
97 in pkgs.releaseTools.aggregate {
98 name = "nixos-${nixos.channel.version}";
99 meta = {
100 description = "Release-critical builds for the NixOS channel";
101 maintainers = [ ];
102 };
103 constituents = lib.flatten [
104 [
105 "nixos.channel"
106 "nixpkgs.tarball"
107 "nixpkgs.release-checks"
108 ]
109 (map (onSystems [ "x86_64-linux" ]) [
110 "nixos.tests.boot.biosCdrom"
111 "nixos.tests.installer.lvm"
112 "nixos.tests.installer.separateBoot"
113 "nixos.tests.installer.simple"
114 ])
115 (map onSupported [
116 "nixos.dummy"
117 "nixos.iso_minimal"
118 "nixos.amazonImage"
119 "nixos.manual"
120 "nixos.tests.acme"
121 "nixos.tests.boot.uefiCdrom"
122 "nixos.tests.containers-imperative"
123 "nixos.tests.containers-ip"
124 "nixos.tests.firewall"
125 "nixos.tests.ipv6"
126 "nixos.tests.login"
127 "nixos.tests.misc.default"
128 "nixos.tests.nat.firewall"
129 "nixos.tests.nat.standalone"
130 "nixos.tests.nfs4.simple"
131 "nixos.tests.openssh"
132 "nixos.tests.php.fpm"
133 "nixos.tests.php.pcre"
134 "nixos.tests.predictable-interface-names.predictable"
135 "nixos.tests.predictable-interface-names.predictableNetworkd"
136 "nixos.tests.predictable-interface-names.unpredictable"
137 "nixos.tests.predictable-interface-names.unpredictableNetworkd"
138 "nixos.tests.proxy"
139 "nixos.tests.simple"
140 "nixpkgs.jdk"
141 "nixpkgs.tests-stdenv-gcc-stageCompare"
142 ])
143 ];
144 };
145
146}