git.iko.soy/nixpkgs-stackage
on master help sign in
Add ability to test stackage locally
commit436b09cb5e8ee2d5e8419e93e0053f72f4160dd1 authorDmitry Bushev <bushevdv@gmail.com> dateSun 31 Dec 2017, 15:48 (9 years ago) parent60afeea
2 files changed+29−3
release.nix+18−3 test.sh+11
release.nix+18−3
@@ -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:
test.shnew file+11
@@ -0,0 +1,11 @@
1+#!/bin/sh
2+
3+LTS=$1
4+shift
5+
6+set -x
7+NIXPKGS_ALLOW_BROKEN=1 exec nix-build release.nix \
8+ --arg supportedStackageReleases "[\"$LTS\"]" \
9+ --arg inHydra false \
10+ -A $LTS.x86_64-linux \
11+ $@