Add release file for hydra

This commit is contained in:
Greg Hale 2019-03-28 20:24:02 -04:00
parent 6e4b72f021
commit 1459a80086
2 changed files with 56 additions and 5 deletions

View File

@ -1,5 +1,34 @@
{ pkgs ? import <nixpkgs> {} }: let
overlay = import ./overlay.nix;
{
compiler ? "ghc863"
, nixpkgs-rev ? "120eab94e0981758a1c928ff81229cd802053158"
, nixpkgs-sha256 ? "0qk6k8gxx5xlkyg05dljywj5wx5fvrc3dzp4v2h6ab83b7zwg813"
, pkgs ? import (builtins.fetchTarball {
url = "https://github.com/NixOS/nixpkgs/archive/${nixpkgs-rev}.tar.gz";
sha256 = nixpkgs-sha256;
}) {
config.allowUnfree = true;
config.allowBroken = false;
}
, doStrict ? false
, doTracing ? false
}:
let
overlay = self: super: builtins.mapAttrs (k: v: (
pkgs.haskell.lib.overrideCabal v (drv: {
configureFlags =
pkgs.stdenv.lib.optional doTracing "--flags=tracing"
++ pkgs.stdenv.lib.optional doStrict "--ghc-options=-Werror";
})
)) (import ./overlay.nix self super);
overrideHaskellPackages = orig: {
buildHaskellPackages =
orig.buildHaskellPackages.override overrideHaskellPackages;
@ -7,10 +36,9 @@
then pkgs.lib.composeExtensions orig.overrides overlay
else overlay;
};
in {
haskellPackages =
pkgs.haskellPackages.override overrideHaskellPackages;
haskell844Packages =
pkgs.haskell.packages.ghc844.override overrideHaskellPackages;
pkgs.haskell.packages.${compiler}.override overrideHaskellPackages;
inherit pkgs;
}

23
release.nix Normal file
View File

@ -0,0 +1,23 @@
{}:
let matrix = [
{ compiler = "ghc863"; doStrict = false; doTracing = false; }
{ compiler = "ghc863"; doStrict = false; doTracing = true; }
{ compiler = "ghc844"; doStrict = false; doTracing = false; }
{ compiler = "ghc844"; doStrict = false; doTracing = true; }
# Broken
# { compiler = "ghc802"; doStrict = false; doTracing = false; }
# { compiler = "ghc802"; doStrict = false; doTracing = true; }
# Deprecated
# { compiler = "ghc822"; doStrict = true; doTracing = false; }
# { compiler = "ghc822"; doStrict = true; doTracing = true; }
# Broken
# { compiler = "ghcjs"; doStrict = false; doTracing = false; }
];
boolToString = x: if x then "true" else "false";
nameForConfig = {compiler, doStrict, doTracing}: builtins.concatStringsSep "-"
[ compiler (boolToString doStrict) (boolToString doTracing) ];
in builtins.listToAttrs (map (args: { name = nameForConfig args; value = import ./. args; }) matrix)