mirror of
https://github.com/NorfairKing/feedback.git
synced 2024-11-22 12:04:21 +03:00
106 lines
3.3 KiB
Nix
106 lines
3.3 KiB
Nix
{
|
|
description = "feedback";
|
|
nixConfig = {
|
|
extra-substituters = "https://feedback.cachix.org";
|
|
extra-trusted-public-keys = "feedback.cachix.org-1:8PNDEJ4GTCbsFUwxVWE/ulyoBMDqqL23JA44yB0j1jI=";
|
|
};
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs?ref=nixos-24.05";
|
|
pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
|
|
weeder-nix.url = "github:NorfairKing/weeder-nix";
|
|
weeder-nix.flake = false;
|
|
validity.url = "github:NorfairKing/validity";
|
|
validity.flake = false;
|
|
autodocodec.url = "github:NorfairKing/autodocodec";
|
|
autodocodec.flake = false;
|
|
safe-coloured-text.url = "github:NorfairKing/safe-coloured-text";
|
|
safe-coloured-text.flake = false;
|
|
fast-myers-diff.url = "github:NorfairKing/fast-myers-diff";
|
|
fast-myers-diff.flake = false;
|
|
sydtest.url = "github:NorfairKing/sydtest";
|
|
sydtest.flake = false;
|
|
dekking.url = "github:NorfairKing/dekking";
|
|
dekking.flake = false;
|
|
};
|
|
|
|
outputs =
|
|
{ self
|
|
, nixpkgs
|
|
, pre-commit-hooks
|
|
, weeder-nix
|
|
, validity
|
|
, safe-coloured-text
|
|
, sydtest
|
|
, fast-myers-diff
|
|
, autodocodec
|
|
, dekking
|
|
}:
|
|
let
|
|
system = "x86_64-linux";
|
|
pkgsFor = nixpkgs: import nixpkgs {
|
|
inherit system;
|
|
config.allowUnfree = true;
|
|
overlays = [
|
|
self.overlays.${system}
|
|
(import (autodocodec + "/nix/overlay.nix"))
|
|
(import (safe-coloured-text + "/nix/overlay.nix"))
|
|
(import (sydtest + "/nix/overlay.nix"))
|
|
(import (fast-myers-diff + "/nix/overlay.nix"))
|
|
(import (validity + "/nix/overlay.nix"))
|
|
(import (dekking + "/nix/overlay.nix"))
|
|
(import (weeder-nix + "/nix/overlay.nix"))
|
|
];
|
|
};
|
|
pkgs = pkgsFor nixpkgs;
|
|
|
|
in
|
|
{
|
|
overlays.${system} = import ./nix/overlay.nix;
|
|
packages.${system}.default = pkgs.feedback;
|
|
checks.${system} = {
|
|
release = self.packages.${system}.default;
|
|
shell = self.devShells.${system}.default;
|
|
coverage-report = pkgs.dekking.makeCoverageReport {
|
|
name = "test-coverage-report";
|
|
coverables = [ "feedback" ];
|
|
coverage = [ "feedback-test-harness" ];
|
|
};
|
|
weeder-check = pkgs.weeder-nix.makeWeederCheck {
|
|
weederToml = ./weeder.toml;
|
|
packages = [ "feedback" "feedback-test-harness" ];
|
|
};
|
|
pre-commit = pre-commit-hooks.lib.${system}.run {
|
|
src = ./.;
|
|
hooks = {
|
|
hlint.enable = true;
|
|
hpack.enable = true;
|
|
ormolu.enable = true;
|
|
nixpkgs-fmt.enable = true;
|
|
nixpkgs-fmt.excludes = [ ".*/default.nix" ];
|
|
cabal2nix.enable = true;
|
|
tagref.enable = true;
|
|
};
|
|
};
|
|
};
|
|
devShells.${system}.default = pkgs.haskellPackages.shellFor {
|
|
name = "feedback-shell";
|
|
packages = p: [
|
|
p.feedback
|
|
# p.feedback-test-harness
|
|
];
|
|
withHoogle = true;
|
|
doBenchmark = true;
|
|
buildInputs = with pkgs; [
|
|
zlib
|
|
cabal-install
|
|
] ++ self.checks.${system}.pre-commit.enabledPackages;
|
|
shellHook = self.checks.${system}.pre-commit.shellHook;
|
|
};
|
|
nix-ci.cachix = {
|
|
name = "feedback";
|
|
public-key = "feedback.cachix.org-1:8PNDEJ4GTCbsFUwxVWE/ulyoBMDqqL23JA44yB0j1jI=";
|
|
};
|
|
};
|
|
}
|