Replace full flake source (self) with minimal filtered filesets to prevent unnecessary rebuilds when unrelated files change. All three inventory eval tests now use the same unified fileset containing only necessary files. This follows the same optimization pattern applied to other eval tests, significantly reducing rebuild frequency during development.
92 lines
2.3 KiB
Nix
92 lines
2.3 KiB
Nix
{
|
|
self,
|
|
inputs,
|
|
options,
|
|
...
|
|
}:
|
|
let
|
|
inputOverrides = self.clanLib.flake-inputs.getOverrides inputs;
|
|
in
|
|
{
|
|
imports = [
|
|
./distributed-service/flake-module.nix
|
|
];
|
|
perSystem =
|
|
{
|
|
pkgs,
|
|
lib,
|
|
config,
|
|
system,
|
|
self',
|
|
...
|
|
}:
|
|
{
|
|
devShells.inventory-schema = pkgs.mkShell {
|
|
name = "clan-inventory-schema";
|
|
inputsFrom = with config.checks; [
|
|
eval-lib-inventory
|
|
self'.devShells.default
|
|
];
|
|
};
|
|
|
|
legacyPackages.schemas = (
|
|
import ./schemas {
|
|
flakeOptions = options;
|
|
inherit
|
|
pkgs
|
|
self
|
|
lib
|
|
self'
|
|
;
|
|
}
|
|
);
|
|
|
|
legacyPackages.clan-service-module-interface =
|
|
(pkgs.nixosOptionsDoc {
|
|
options =
|
|
(self.clanLib.evalService {
|
|
modules = [ { _docs_rendering = true; } ];
|
|
prefix = [ ];
|
|
}).options;
|
|
warningsAreErrors = true;
|
|
}).optionsJSON;
|
|
|
|
# Run: nix-unit --extra-experimental-features flakes --flake .#legacyPackages.x86_64-linux.evalTests
|
|
legacyPackages.evalTests-inventory = import ./tests {
|
|
inherit lib;
|
|
clan-core = self;
|
|
inherit (self) clanLib;
|
|
inherit (self.inputs) nix-darwin;
|
|
};
|
|
|
|
checks = {
|
|
eval-lib-inventory = pkgs.runCommand "tests" { nativeBuildInputs = [ pkgs.nix-unit ]; } ''
|
|
export HOME="$(realpath .)"
|
|
export NIX_ABORT_ON_WARN=1
|
|
nix-unit --eval-store "$HOME" \
|
|
--extra-experimental-features flakes \
|
|
--show-trace \
|
|
${inputOverrides} \
|
|
--flake ${
|
|
lib.fileset.toSource {
|
|
root = ../../..;
|
|
fileset = lib.fileset.unions [
|
|
../../../flake.nix
|
|
../../../flake.lock
|
|
(lib.fileset.fileFilter (file: file.name == "flake-module.nix") ../../..)
|
|
../../../flakeModules
|
|
../../../lib
|
|
../../../nixosModules/clanCore
|
|
../../../clanModules/borgbackup
|
|
../../../machines
|
|
../../../inventory.json
|
|
];
|
|
}
|
|
}#legacyPackages.${system}.evalTests-inventory
|
|
|
|
touch $out
|
|
'';
|
|
};
|
|
};
|
|
}
|