Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1/*
2 test for example like this
3 $ hydra-eval-jobs pkgs/top-level/release-python.nix
4*/
5
6{
7 # The platforms for which we build Nixpkgs.
8 supportedSystems ? [
9 "aarch64-linux"
10 "x86_64-linux"
11 ],
12 # Attributes passed to nixpkgs. Don't build packages marked as unfree.
13 nixpkgsArgs ? {
14 config = {
15 allowAliases = false;
16 allowUnfree = false;
17 inHydra = true;
18 };
19
20 __allowFileset = false;
21 },
22}:
23
24let
25 release-lib = import ./release-lib.nix {
26 inherit supportedSystems nixpkgsArgs;
27 };
28
29 inherit (release-lib) mapTestOn pkgs;
30
31 inherit (release-lib.lib) isDerivation mapAttrs optionals;
32
33 packagePython = mapAttrs (
34 name: value:
35 let
36 res = builtins.tryEval (
37 if isDerivation value then
38 value.meta.isBuildPythonPackage or [ ]
39 else if
40 value.recurseForDerivations or false
41 || value.recurseForRelease or false
42 || value.__recurseIntoDerivationForReleaseJobs or false
43 then
44 packagePython value
45 else
46 [ ]
47 );
48 in
49 optionals res.success res.value
50 );
51
52 jobs = {
53 # for pkgs.formats tests, which rely on remarshal
54 pkgs-lib-tests = import ../pkgs-lib/tests { inherit pkgs; };
55
56 tested = pkgs.releaseTools.aggregate {
57 name = "python-tested";
58 meta.description = "Release-critical packages from the python package sets";
59 constituents = [
60 jobs.nixos-render-docs.x86_64-linux # Used in nixos manual
61 jobs.remarshal_0_17.x86_64-linux # Used in pkgs.formats.yaml_1_1
62 jobs.python312Packages.afdko.x86_64-linux # Used in noto-fonts-color-emoji
63 jobs.python312Packages.buildcatrust.x86_64-linux # Used in pkgs.cacert
64 jobs.python312Packages.colorama.x86_64-linux # Used in nixos test-driver
65 jobs.python312Packages.ptpython.x86_64-linux # Used in nixos test-driver
66 jobs.python312Packages.requests.x86_64-linux # Almost ubiquous package
67 jobs.python312Packages.sphinx.x86_64-linux # Document creation for many packages
68 ];
69 };
70
71 }
72 // (mapTestOn (packagePython pkgs));
73in
74jobs