python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / top-level / release.nix
blob61116328b29f5066ada517e6ac0583c02dec1e59
1 /* This file defines the builds that constitute the Nixpkgs.
2    Everything defined here ends up in the Nixpkgs channel.  Individual
3    jobs can be tested by running:
5    $ nix-build pkgs/top-level/release.nix -A <jobname>.<system>
7    e.g.
9    $ nix-build pkgs/top-level/release.nix -A coreutils.x86_64-linux
11 { nixpkgs ? { outPath = (import ../../lib).cleanSource ../..; revCount = 1234; shortRev = "abcdef"; revision = "0000000000000000000000000000000000000000"; }
12 , officialRelease ? false
13   # The platforms for which we build Nixpkgs.
14 , supportedSystems ? [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ]
15 , limitedSupportedSystems ? [ "i686-linux" ]
16   # Strip most of attributes when evaluating to spare memory usage
17 , scrubJobs ? true
18   # Attributes passed to nixpkgs. Don't build packages marked as unfree.
19 , nixpkgsArgs ? { config = { allowUnfree = false; inHydra = true; }; }
22 with import ./release-lib.nix { inherit supportedSystems scrubJobs nixpkgsArgs; };
24 let
26   systemsWithAnySupport = supportedSystems ++ limitedSupportedSystems;
28   supportDarwin = lib.genAttrs [
29     "x86_64"
30     "aarch64"
31   ] (arch: builtins.elem "${arch}-darwin" systemsWithAnySupport);
33   nonPackageJobs =
34     { tarball = import ./make-tarball.nix { inherit pkgs nixpkgs officialRelease supportedSystems; };
36       metrics = import ./metrics.nix { inherit pkgs nixpkgs; };
38       manual = import ../../doc { inherit pkgs nixpkgs; };
39       lib-tests = import ../../lib/tests/release.nix { inherit pkgs; };
40       pkgs-lib-tests = import ../pkgs-lib/tests { inherit pkgs; };
42       darwin-tested = if supportDarwin.x86_64 then pkgs.releaseTools.aggregate
43         { name = "nixpkgs-darwin-${jobs.tarball.version}";
44           meta.description = "Release-critical builds for the Nixpkgs darwin channel";
45           constituents =
46             [ jobs.tarball
47               jobs.cabal2nix.x86_64-darwin
48               jobs.ghc.x86_64-darwin
49               jobs.git.x86_64-darwin
50               jobs.go.x86_64-darwin
51               jobs.mariadb.x86_64-darwin
52               jobs.nix.x86_64-darwin
53               jobs.nixpkgs-review.x86_64-darwin
54               jobs.nix-info.x86_64-darwin
55               jobs.nix-info-tested.x86_64-darwin
56               jobs.openssh.x86_64-darwin
57               jobs.openssl.x86_64-darwin
58               jobs.pandoc.x86_64-darwin
59               jobs.postgresql.x86_64-darwin
60               jobs.python3.x86_64-darwin
61               jobs.ruby.x86_64-darwin
62               jobs.rustc.x86_64-darwin
63               # blocking ofBorg CI 2020-02-28
64               # jobs.stack.x86_64-darwin
65               jobs.stdenv.x86_64-darwin
66               jobs.vim.x86_64-darwin
67               jobs.cachix.x86_64-darwin
69               # UI apps
70               # jobs.firefox-unwrapped.x86_64-darwin
71               jobs.qt5.qtmultimedia.x86_64-darwin
72               jobs.inkscape.x86_64-darwin
73               jobs.gimp.x86_64-darwin
74               jobs.emacs.x86_64-darwin
75               jobs.wireshark.x86_64-darwin
76               jobs.transmission-gtk.x86_64-darwin
78               # Tests
79               /*
80               jobs.tests.cc-wrapper.x86_64-darwin
81               jobs.tests.cc-wrapper-clang.x86_64-darwin
82               jobs.tests.cc-wrapper-libcxx.x86_64-darwin
83               jobs.tests.stdenv-inputs.x86_64-darwin
84               jobs.tests.macOSSierraShared.x86_64-darwin
85               jobs.tests.patch-shebangs.x86_64-darwin
86               */
87             ];
88         } else null;
90       unstable = pkgs.releaseTools.aggregate
91         { name = "nixpkgs-${jobs.tarball.version}";
92           meta.description = "Release-critical builds for the Nixpkgs unstable channel";
93           constituents =
94             [ jobs.tarball
95               jobs.metrics
96               jobs.manual
97               jobs.lib-tests
98               jobs.pkgs-lib-tests
99               jobs.stdenv.x86_64-linux
100               jobs.cargo.x86_64-linux
101               jobs.go.x86_64-linux
102               jobs.linux.x86_64-linux
103               jobs.pandoc.x86_64-linux
104               jobs.python3.x86_64-linux
105               # Needed by contributors to test PRs (by inclusion of the PR template)
106               jobs.nixpkgs-review.x86_64-linux
107               # Needed for support
108               jobs.nix-info.x86_64-linux
109               jobs.nix-info-tested.x86_64-linux
110               # Ensure that X11/GTK are in order.
111               jobs.firefox-unwrapped.x86_64-linux
112               jobs.cachix.x86_64-linux
114               /*
115               jobs.tests.cc-wrapper.x86_64-linux
116               jobs.tests.cc-wrapper-gcc7.x86_64-linux
117               jobs.tests.cc-wrapper-gcc8.x86_64-linux
119               # broken see issue #40038
121               jobs.tests.cc-wrapper-clang.x86_64-linux
122               jobs.tests.cc-wrapper-libcxx.x86_64-linux
123               jobs.tests.cc-wrapper-clang-5.x86_64-linux
124               jobs.tests.cc-wrapper-libcxx-5.x86_64-linux
125               jobs.tests.cc-wrapper-clang-6.x86_64-linux
126               jobs.tests.cc-wrapper-libcxx-6.x86_64-linux
127               jobs.tests.cc-multilib-gcc.x86_64-linux
128               jobs.tests.cc-multilib-clang.x86_64-linux
129               jobs.tests.stdenv-inputs.x86_64-linux
130               jobs.tests.patch-shebangs.x86_64-linux
131               */
132             ]
133             ++ lib.collect lib.isDerivation jobs.stdenvBootstrapTools
134             ++ lib.optionals supportDarwin.x86_64 [
135               jobs.stdenv.x86_64-darwin
136               jobs.cargo.x86_64-darwin
137               jobs.cachix.x86_64-darwin
138               jobs.go.x86_64-darwin
139               jobs.python3.x86_64-darwin
140               jobs.nixpkgs-review.x86_64-darwin
141               jobs.nix-info.x86_64-darwin
142               jobs.nix-info-tested.x86_64-darwin
143               jobs.git.x86_64-darwin
144               jobs.mariadb.x86_64-darwin
145               jobs.vim.x86_64-darwin
146               jobs.inkscape.x86_64-darwin
147               jobs.qt5.qtmultimedia.x86_64-darwin
148               /*
149               jobs.tests.cc-wrapper.x86_64-darwin
150               jobs.tests.cc-wrapper-gcc7.x86_64-darwin
151               # jobs.tests.cc-wrapper-gcc8.x86_64-darwin
152               jobs.tests.cc-wrapper-clang.x86_64-darwin
153               jobs.tests.cc-wrapper-libcxx.x86_64-darwin
154               jobs.tests.cc-wrapper-clang-5.x86_64-darwin
155               jobs.tests.cc-wrapper-libcxx-6.x86_64-darwin
156               jobs.tests.cc-wrapper-clang-6.x86_64-darwin
157               jobs.tests.cc-wrapper-libcxx-6.x86_64-darwin
158               jobs.tests.stdenv-inputs.x86_64-darwin
159               jobs.tests.macOSSierraShared.x86_64-darwin
160               jobs.tests.patch-shebangs.x86_64-darwin
161               */
162             ];
163         };
165       stdenvBootstrapTools = with lib;
166         genAttrs systemsWithAnySupport
167           (system: {
168             inherit
169               (import ../stdenv/linux/make-bootstrap-tools.nix {
170                 pkgs = import ../.. {
171                   localSystem = { inherit system; };
172                 };
173               })
174               dist test;
175           })
176         # darwin is special in this
177         // optionalAttrs supportDarwin.x86_64 {
178           x86_64-darwin =
179             let
180               bootstrap = import ../stdenv/darwin/make-bootstrap-tools.nix {
181                 localSystem = { system = "x86_64-darwin"; };
182               };
183             in {
184               # Lightweight distribution and test
185               inherit (bootstrap) dist test;
186               # Test a full stdenv bootstrap from the bootstrap tools definition
187               inherit (bootstrap.test-pkgs) stdenv;
188             };
189         } // optionalAttrs supportDarwin.aarch64 {
190           # Cross compiled bootstrap tools
191           aarch64-darwin =
192             let
193               bootstrap = import ../stdenv/darwin/make-bootstrap-tools.nix {
194                 localSystem = { system = "x86_64-darwin"; };
195                 crossSystem = { system = "aarch64-darwin"; };
196               };
197             in {
198               # Distribution only for now
199               inherit (bootstrap) dist;
200             };
201           };
203        };
205   # Do not allow attribute collision between jobs inserted in
206   # 'nonPackageAttrs' and jobs pulled in from 'pkgs'.
207   # Conflicts usually cause silent job drops like in
208   #   https://github.com/NixOS/nixpkgs/pull/182058
209   jobs = lib.attrsets.unionOfDisjoint
210     nonPackageJobs
211     (mapTestOn ((packagePlatforms pkgs) // {
212       haskell.compiler = packagePlatforms pkgs.haskell.compiler;
213       haskellPackages = packagePlatforms pkgs.haskellPackages;
214       idrisPackages = packagePlatforms pkgs.idrisPackages;
215       agdaPackages = packagePlatforms pkgs.agdaPackages;
217       pkgsLLVM.stdenv = [ "x86_64-linux" "aarch64-linux" ];
218       pkgsMusl.stdenv = [ "x86_64-linux" "aarch64-linux" ];
219       pkgsStatic.stdenv = [ "x86_64-linux" "aarch64-linux" ];
221       tests = packagePlatforms pkgs.tests;
223       # Language packages disabled in https://github.com/NixOS/nixpkgs/commit/ccd1029f58a3bb9eca32d81bf3f33cb4be25cc66
225       #emacsPackages = packagePlatforms pkgs.emacsPackages;
226       #rPackages = packagePlatforms pkgs.rPackages;
227       ocamlPackages = { };
228       perlPackages = { };
230       darwin = packagePlatforms pkgs.darwin // {
231         cf-private = {};
232         xcode = {};
233       };
234     } ));
236 in jobs