ci: Add checks for different GHC versions

Repin haskell.nix and generate checks for multiple chosen versions of GHC.
This commit is contained in:
Kirill Elagin 2021-03-29 08:36:54 -04:00
parent b60991303f
commit addd9ce503
2 changed files with 97 additions and 24 deletions

View File

@ -2,11 +2,11 @@
"nodes": {
"flake-utils": {
"locked": {
"lastModified": 1610051610,
"narHash": "sha256-U9rPz/usA1/Aohhk7Cmc2gBrEEKRzcW4nwPWMPwja4Y=",
"lastModified": 1614513358,
"narHash": "sha256-LakhOx3S1dRjnh0b5Dg3mbZyH0ToC9I8Y2wKSkBaTzU=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "3982c9903e93927c2164caa727cd3f6a0e6d14cc",
"rev": "5466c5bbece17adaab2d82fae80b46e807611bf3",
"type": "github"
},
"original": {
@ -16,18 +16,24 @@
}
},
"haskell-nix": {
"inputs": {
"nixpkgs": "nixpkgs",
"nixpkgs-2003": "nixpkgs-2003",
"nixpkgs-2009": "nixpkgs-2009",
"nixpkgs-unstable": "nixpkgs-unstable"
},
"locked": {
"lastModified": 1613524507,
"narHash": "sha256-vIjgOb6PKGtLpSDbKV6J2dI4nR8SOcST1I1B+qOhsR8=",
"lastModified": 1614746792,
"narHash": "sha256-KAxmQxYDRbB/pYW5vqvPSwZ3kft5UulZ5fY1nodP8FQ=",
"owner": "input-output-hk",
"repo": "haskell.nix",
"rev": "ba87ffb84bc4158ada14908bddee9df2c81ac31b",
"rev": "43cb0fc8957be7ab027f8bd5d48bc22479032c1f",
"type": "github"
},
"original": {
"owner": "input-output-hk",
"repo": "haskell.nix",
"rev": "ba87ffb84bc4158ada14908bddee9df2c81ac31b",
"rev": "43cb0fc8957be7ab027f8bd5d48bc22479032c1f",
"type": "github"
}
},
@ -35,23 +41,87 @@
"locked": {
"lastModified": 1608007629,
"narHash": "sha256-lipVFC/a2pzzA5X2ULj64je+fz1JIp2XRrB5qyoizpQ=",
"owner": "nixos",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f02bf8ffb9a5ec5e8f6f66f1e5544fd2aa1a0693",
"type": "github"
},
"original": {
"owner": "nixos",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f02bf8ffb9a5ec5e8f6f66f1e5544fd2aa1a0693",
"type": "github"
}
},
"nixpkgs-2003": {
"locked": {
"lastModified": 1607708579,
"narHash": "sha256-QyADEDydJJPa8n3xawnA82IJAcZHNNm6Pp5DU7exMr4=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "7f73e46625f508a793700f5110b86f1a53341d6e",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "7f73e46625f508a793700f5110b86f1a53341d6e",
"type": "github"
}
},
"nixpkgs-2009": {
"locked": {
"lastModified": 1608007629,
"narHash": "sha256-lipVFC/a2pzzA5X2ULj64je+fz1JIp2XRrB5qyoizpQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f02bf8ffb9a5ec5e8f6f66f1e5544fd2aa1a0693",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f02bf8ffb9a5ec5e8f6f66f1e5544fd2aa1a0693",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1612284693,
"narHash": "sha256-efzJNF1jvjK3BMl0gZ0ZaUWcFMv0nLb9AHN/++5+u0U=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "410bbd828cdc6156aecd5bc91772ad3a6b1099c7",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "410bbd828cdc6156aecd5bc91772ad3a6b1099c7",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1615307759,
"narHash": "sha256-KpzbA2Uf7ZSuu+Q7fAA1DBiY319HrU1QbjzsmgL3I8w=",
"owner": "serokell",
"repo": "nixpkgs",
"rev": "25cb6c920e31f80cc4c4559c840c5753d4a9012f",
"type": "github"
},
"original": {
"owner": "serokell",
"repo": "nixpkgs",
"rev": "25cb6c920e31f80cc4c4559c840c5753d4a9012f",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"haskell-nix": "haskell-nix",
"nixpkgs": "nixpkgs"
"nixpkgs": "nixpkgs_2"
}
}
},

View File

@ -7,32 +7,35 @@
inputs = {
flake-utils.url = "github:numtide/flake-utils";
haskell-nix.url = "github:input-output-hk/haskell.nix/ba87ffb84bc4158ada14908bddee9df2c81ac31b";
nixpkgs.url = "github:nixos/nixpkgs/f02bf8ffb9a5ec5e8f6f66f1e5544fd2aa1a0693";
haskell-nix.url = "github:input-output-hk/haskell.nix/43cb0fc8957be7ab027f8bd5d48bc22479032c1f";
nixpkgs.url = "github:serokell/nixpkgs/25cb6c920e31f80cc4c4559c840c5753d4a9012f";
};
outputs = { self, nixpkgs, flake-utils, haskell-nix }:
flake-utils.lib.eachDefaultSystem (system:
flake-utils.lib.eachSystem [ "x86_64-linux" ] (system:
let
pkgs = nixpkgs.legacyPackages.${system}.extend haskell-nix.overlay;
inherit (pkgs) lib;
project = pkgs.haskell-nix.stackProject {
src = pkgs.haskell-nix.haskellLib.cleanGit {
name = "with-utf8";
src = ./.;
};
};
with-utf8 = project.with-utf8;
src = ./.;
project = args: pkgs.haskell-nix.stackProject ({ inherit src; } // args);
with-utf8 = (project {}).with-utf8;
check = args: (project args).with-utf8.checks.with-utf8-test;
in rec {
packages = {
with-utf8 = with-utf8.components.library;
};
defaultPackage = packages.with-utf8;
checks = {
build = packages.with-utf8;
test = with-utf8.checks.with-utf8-test;
};
checks =
let
mkGhcCheck = ghcName: {
name = "test-${ghcName}";
value = check { ghc = pkgs.haskell-nix.compiler.${ghcName}; };
};
in {
test = with-utf8.checks.with-utf8-test;
} // lib.listToAttrs (map mkGhcCheck [ "ghc884" "ghc8104" ]);
apps.utf8-troubleshoot = {
type = "app";