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