Add nix flake checks
This commit is contained in:
parent
d6cb49a0d1
commit
056acbf397
10
flake.nix
10
flake.nix
|
@ -25,7 +25,10 @@
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
pkgs = import nixpkgs {inherit system overlays;};
|
pkgs = import nixpkgs {inherit system overlays;};
|
||||||
package = import ./nix/package.nix {inherit self nix-filter pkgs;};
|
package = import ./nix/package.nix {
|
||||||
|
inherit self pkgs;
|
||||||
|
nix-filter = nix-filter.lib;
|
||||||
|
};
|
||||||
in {
|
in {
|
||||||
packages.${system} = rec {
|
packages.${system} = rec {
|
||||||
tlaternet-templates = package.package;
|
tlaternet-templates = package.package;
|
||||||
|
@ -35,5 +38,10 @@
|
||||||
devShells.${system} = {
|
devShells.${system} = {
|
||||||
default = package.shell;
|
default = package.shell;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
checks.${system} = import ./nix/checks.nix {
|
||||||
|
inherit self pkgs;
|
||||||
|
nix-filter = nix-filter.lib;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
61
nix/checks.nix
Normal file
61
nix/checks.nix
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
{
|
||||||
|
self,
|
||||||
|
nix-filter,
|
||||||
|
pkgs,
|
||||||
|
}: let
|
||||||
|
inherit (builtins) removeAttrs;
|
||||||
|
inherit (pkgs.lib) concatStringsSep;
|
||||||
|
|
||||||
|
mkNodeCheck = {
|
||||||
|
buildInputs ? [],
|
||||||
|
checkCommands,
|
||||||
|
...
|
||||||
|
} @ attrs: let
|
||||||
|
extraAttrs = removeAttrs attrs ["buildInputs"];
|
||||||
|
in
|
||||||
|
self.packages.${pkgs.system}.default.overrideAttrs (old:
|
||||||
|
{
|
||||||
|
src = nix-filter {
|
||||||
|
root = self;
|
||||||
|
|
||||||
|
include = [
|
||||||
|
../package.json
|
||||||
|
../tsconfig.json
|
||||||
|
../.eslintrc.json
|
||||||
|
../.parcelrc
|
||||||
|
../.posthtmlrc
|
||||||
|
../.prettierrc
|
||||||
|
|
||||||
|
nix-filter.isDirectory
|
||||||
|
(nix-filter.matchExt "ts")
|
||||||
|
(nix-filter.matchExt "tsx")
|
||||||
|
(nix-filter.matchExt "html")
|
||||||
|
(nix-filter.matchExt "scss")
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = old.buildInputs ++ buildInputs;
|
||||||
|
|
||||||
|
checkPhase = ''
|
||||||
|
mkdir -p $out
|
||||||
|
${concatStringsSep "\n" (map (command: "${command} > $out/check.log") checkCommands)}
|
||||||
|
'';
|
||||||
|
|
||||||
|
doCheck = true;
|
||||||
|
dontBuild = true;
|
||||||
|
dontInstall = true;
|
||||||
|
}
|
||||||
|
// extraAttrs);
|
||||||
|
in {
|
||||||
|
style = mkNodeCheck {
|
||||||
|
checkCommands = [
|
||||||
|
"npm run style"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
types = mkNodeCheck {
|
||||||
|
checkCommands = [
|
||||||
|
"npm run check"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
|
@ -3,6 +3,8 @@
|
||||||
nix-filter,
|
nix-filter,
|
||||||
pkgs,
|
pkgs,
|
||||||
}: let
|
}: let
|
||||||
|
inherit (pkgs.lib) cleanSource;
|
||||||
|
|
||||||
node_modules_attrs = {
|
node_modules_attrs = {
|
||||||
# Dependencies that should be available in the node build
|
# Dependencies that should be available in the node build
|
||||||
buildInputs = with pkgs; [
|
buildInputs = with pkgs; [
|
||||||
|
@ -21,7 +23,7 @@ in {
|
||||||
package = pkgs.npmlock2nix.build {
|
package = pkgs.npmlock2nix.build {
|
||||||
inherit buildInputs node_modules_attrs;
|
inherit buildInputs node_modules_attrs;
|
||||||
|
|
||||||
src = pkgs.lib.cleanSource self;
|
src = cleanSource self;
|
||||||
|
|
||||||
buildCommands = ["npm run build-dist"];
|
buildCommands = ["npm run build-dist"];
|
||||||
|
|
||||||
|
@ -33,7 +35,7 @@ in {
|
||||||
shell = pkgs.npmlock2nix.shell {
|
shell = pkgs.npmlock2nix.shell {
|
||||||
inherit buildInputs node_modules_attrs;
|
inherit buildInputs node_modules_attrs;
|
||||||
|
|
||||||
src = nix-filter.lib {
|
src = nix-filter {
|
||||||
root = self;
|
root = self;
|
||||||
include = [
|
include = [
|
||||||
"package.json"
|
"package.json"
|
||||||
|
|
Reference in a new issue