forked from Fediversity/Fediversity
as per Fediversity/Fediversity#419 (comment) Reviewed-on: Fediversity/Fediversity#422 Co-authored-by: Kiara Grouwstra <kiara@procolix.eu> Co-committed-by: Kiara Grouwstra <kiara@procolix.eu>
83 lines
2 KiB
Nix
83 lines
2 KiB
Nix
{
|
|
system ? builtins.currentSystem,
|
|
sources ? import ./npins,
|
|
pkgs ? import sources.nixpkgs { inherit system; },
|
|
}:
|
|
let
|
|
inherit (sources)
|
|
nixpkgs
|
|
git-hooks
|
|
gitignore
|
|
;
|
|
inherit (pkgs) lib;
|
|
inherit (import sources.flake-inputs) import-flake;
|
|
inherit ((import-flake { src = ./.; }).inputs) nixops4;
|
|
pre-commit-check =
|
|
(import "${git-hooks}/nix" {
|
|
inherit nixpkgs system;
|
|
gitignore-nix-src = {
|
|
lib = import gitignore { inherit lib; };
|
|
};
|
|
}).run
|
|
{
|
|
src = ./.;
|
|
hooks =
|
|
let
|
|
## Add a directory here if pre-commit hooks shouldn't apply to it.
|
|
optout = [
|
|
"npins"
|
|
];
|
|
excludes = map (dir: "^${dir}/") optout;
|
|
addExcludes = lib.mapAttrs (_: c: c // { inherit excludes; });
|
|
in
|
|
addExcludes {
|
|
nixfmt-rfc-style.enable = true;
|
|
deadnix.enable = true;
|
|
trim-trailing-whitespace.enable = true;
|
|
shellcheck.enable = true;
|
|
};
|
|
};
|
|
in
|
|
{
|
|
# shell for testing TF directly
|
|
shell = pkgs.mkShellNoCC {
|
|
inherit (pre-commit-check) shellHook;
|
|
buildInputs = pre-commit-check.enabledPackages;
|
|
packages =
|
|
let
|
|
test-loop = pkgs.writeShellApplication {
|
|
name = "test-loop";
|
|
runtimeInputs = [
|
|
pkgs.watchexec
|
|
pkgs.nix-unit
|
|
];
|
|
text = ''
|
|
watchexec -w ${builtins.toString ./.} -- nix-unit ${builtins.toString ./deployment/data-model-test.nix} "$@"
|
|
'';
|
|
};
|
|
in
|
|
[
|
|
pkgs.npins
|
|
pkgs.nil
|
|
(pkgs.callPackage "${sources.agenix}/pkgs/agenix.nix" { })
|
|
pkgs.openssh
|
|
pkgs.httpie
|
|
pkgs.jq
|
|
pkgs.nix-unit
|
|
test-loop
|
|
nixops4.packages.${system}.default
|
|
];
|
|
};
|
|
|
|
tests = {
|
|
inherit pre-commit-check;
|
|
};
|
|
|
|
# re-export inputs so they can be overridden granularly
|
|
# (they can't be accessed from the outside any other way)
|
|
inherit
|
|
sources
|
|
system
|
|
pkgs
|
|
;
|
|
}
|