@@ -10,16 +10,39 @@ let
10 lib = genericPkgs.lib;
10 lib = genericPkgs.lib;
11 ci = import ./ci.nix { inherit supportedSystems ifdLevel checkMaterialization; restrictEval = true; };
11 ci = import ./ci.nix { inherit supportedSystems ifdLevel checkMaterialization; restrictEval = true; };
12 allJobs = stripAttrsForHydra (filterDerivations ci);
12 allJobs = stripAttrsForHydra (filterDerivations ci);
13−in allJobs // {
13+ latestJobs = {
14− # On IOHK Hydra, "required" is a special job that updates the
14+ # All the jobs are included in the `requiredJobs`, but the ones
15− # GitHub CI status.
15+ # added here will also included without aggregation, making it easier
16+ # to find a failing test. Keep in mind though that adding too many
17+ # of these will slow down eval times.
18+ linux = allJobs.R2009.ghc8102.linux.native or {};
19+ darwin = allJobs.R2009.ghc8102.darwin.native or {};
21+ names = x: lib.filter (n: n != "recurseForDerivations" && n != "meta")
22+ (builtins.attrNames x);
24+ builtins.listToAttrs (
25+ lib.concatMap (nixpkgsVer:
26+ let nixpkgsJobs = allJobs.${nixpkgsVer};
27+ in lib.concatMap (compiler-nix-name:
28+ let ghcJobs = nixpkgsJobs.${compiler-nix-name};
29+ in builtins.map (platform: {
30+ name = "required-${nixpkgsVer}-${compiler-nix-name}-${platform}";
31+ value = genericPkgs.releaseTools.aggregate {
32+ name = "haskell.nix-${nixpkgsVer}-${compiler-nix-name}-${platform}";
33+ meta.description = "All ${nixpkgsVer} ${compiler-nix-name} ${platform} jobs";
34+ constituents = lib.collect (d: lib.isDerivation d) ghcJobs.${platform};
37+ ) (names nixpkgsJobs)
39+in latestJobs // requiredJobs // {
16 required = genericPkgs.releaseTools.aggregate {
40 required = genericPkgs.releaseTools.aggregate {
17 name = "haskell.nix-required";
41 name = "haskell.nix-required";
18 meta.description = "All jobs required to pass CI";
42 meta.description = "All jobs required to pass CI";
19− # Hercules will require all of these, we just require the 20.09 jobs
43+ # Using the names here requires https://github.com/NixOS/hydra/issues/715
20− # to avoid stressing Hydra too much
44+ constituents = builtins.attrNames requiredJobs;
21− constituents = lib.collect lib.isDerivation allJobs.R2009.ghc865.linux.native;