add flake module
This commit is contained in:
parent
3fe748f174
commit
bc2a62e62b
4 changed files with 84 additions and 0 deletions
10
flake/default.nix
Normal file
10
flake/default.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
{mix, ...} @ inputs:
|
||||||
|
mix.newMixture inputs (mixture: {
|
||||||
|
includes.public = [
|
||||||
|
./devshells.nix
|
||||||
|
./nix-unit.nix
|
||||||
|
];
|
||||||
|
submods.private = [
|
||||||
|
./util.nix
|
||||||
|
];
|
||||||
|
})
|
||||||
20
flake/devshells.nix
Normal file
20
flake/devshells.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
{this, ...}: let
|
||||||
|
inherit
|
||||||
|
(this.util)
|
||||||
|
forAllSystems
|
||||||
|
;
|
||||||
|
in {
|
||||||
|
devShells = forAllSystems (
|
||||||
|
system: pkgs: {
|
||||||
|
default = pkgs.mkShell {
|
||||||
|
packages = with pkgs; [
|
||||||
|
python312
|
||||||
|
nix-unit
|
||||||
|
nixfmt
|
||||||
|
];
|
||||||
|
|
||||||
|
shell = "${pkgs.bash}/bin/bash";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
34
flake/nix-unit.nix
Normal file
34
flake/nix-unit.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
this,
|
||||||
|
flake,
|
||||||
|
deps,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit
|
||||||
|
(deps)
|
||||||
|
nixpkgs
|
||||||
|
nix-unit
|
||||||
|
;
|
||||||
|
|
||||||
|
inherit
|
||||||
|
(this.util)
|
||||||
|
forAllSystems
|
||||||
|
;
|
||||||
|
in {
|
||||||
|
checks = forAllSystems (system: {
|
||||||
|
default =
|
||||||
|
nixpkgs.legacyPackages.${system}.runCommand "tests"
|
||||||
|
{
|
||||||
|
nativeBuildInputs = [nix-unit.packages.${system}.default];
|
||||||
|
}
|
||||||
|
''
|
||||||
|
export HOME="$(realpath .)"
|
||||||
|
# The nix derivation must be able to find all used inputs in the nix-store because it cannot download it during buildTime.
|
||||||
|
nix-unit --eval-store "$HOME" \
|
||||||
|
--extra-experimental-features flakes \
|
||||||
|
--override-input nixpkgs ${nixpkgs} \
|
||||||
|
--flake ${flake}#tests
|
||||||
|
touch $out
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
}
|
||||||
20
flake/util.nix
Normal file
20
flake/util.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
flake,
|
||||||
|
systems,
|
||||||
|
nixpkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
inherit
|
||||||
|
(builtins)
|
||||||
|
attrValues
|
||||||
|
;
|
||||||
|
in {
|
||||||
|
forAllSystems = f:
|
||||||
|
nixpkgs.lib.genAttrs systems (system:
|
||||||
|
f system (import nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
allowUnfree = false;
|
||||||
|
allowBroken = false;
|
||||||
|
overlays = attrValues flake.overlays;
|
||||||
|
}));
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue