@@ -1,5 +1,6 @@
11{ supportedSystems ? [ "x86_64-linux" "i686-linux" ]
2−, supportedStackageReleases ? [ "lts-100" ] }:
2+, supportedStackageReleases ? [ "lts-100" ]
3+, inHydra ? true }:
34
45let
56 lib = (import <nixpkgs> {}).lib;
@@ -8,10 +9,24 @@ let
89 nixpkgsArgs = { overlays = [ (import ./haskell-overlay.nix) ]; };
910 };
1011
11− # genJobSet :: StackageRelease -> System -> AttrSet
12− genJobSet = lts: system:
12+ # hasSupportedSystem :: System -> Derivation -> Bool
13+ hasSupportedSystem = system: pkg:
14+ # Test `isAttrs pkg` to ensure that pkg is a derivation
15+ lib.isAttrs pkg && lib.elem system pkg.meta.platforms;
16+
17+ # genJobSetFiltered :: StackageRelease -> System -> AttrSet
18+ genJobSetFiltered = lts: system:
19+ lib.filterAttrs
20+ (_: pkg: hasSupportedSystem system pkg)
21+ (release.pkgsFor system).haskell.packages.stackage."${lts}";
22+
23+ # genJobSetFull :: StackageRelease -> System -> AttrSet
24+ genJobSetFull = lts: system:
1325 (release.pkgsFor system).haskell.packages.stackage."${lts}";
1426
27+ # genJobSet :: StackageRelease -> System -> AttrSet
28+ genJobSet = if inHydra then genJobSetFull else genJobSetFiltered;
29+
1530in
1631 lib.genAttrs supportedStackageReleases (stackage:
1732 lib.genAttrs supportedSystems (system: