From c64dbcecebfdd3a2773109248b9fbd491490db8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Mon, 7 Jul 2025 20:41:20 +0200 Subject: [PATCH] checks/inventory: optimize eval tests to use filtered sources 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. --- .../distributed-service/flake-module.nix | 21 +++++++++++++++++-- lib/modules/inventory/flake-module.nix | 18 ++++++++++------ 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/lib/modules/inventory/distributed-service/flake-module.nix b/lib/modules/inventory/distributed-service/flake-module.nix index 7e7f8aea9..415d984b4 100644 --- a/lib/modules/inventory/distributed-service/flake-module.nix +++ b/lib/modules/inventory/distributed-service/flake-module.nix @@ -10,6 +10,23 @@ in system, ... }: + let + # Common filtered source for inventory tests + inventoryTestsSrc = 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 + ]; + }; + in { # Run: nix-unit --extra-experimental-features flakes --flake .#legacyPackages.x86_64-linux. legacyPackages.evalTests-distributedServices = import ./tests { @@ -27,7 +44,7 @@ in --extra-experimental-features flakes \ --show-trace \ ${inputOverrides} \ - --flake ${self}#legacyPackages.${system}.evalTests-distributedServices + --flake ${inventoryTestsSrc}#legacyPackages.${system}.evalTests-distributedServices touch $out ''; @@ -37,7 +54,7 @@ in --extra-experimental-features flakes \ --show-trace \ ${inputOverrides} \ - --flake ${self}#legacyPackages.${system}.eval-tests-resolve-module + --flake ${inventoryTestsSrc}#legacyPackages.${system}.eval-tests-resolve-module touch $out ''; diff --git a/lib/modules/inventory/flake-module.nix b/lib/modules/inventory/flake-module.nix index a245f5657..abfd01ffb 100644 --- a/lib/modules/inventory/flake-module.nix +++ b/lib/modules/inventory/flake-module.nix @@ -68,12 +68,18 @@ in --show-trace \ ${inputOverrides} \ --flake ${ - self.filter { - include = [ - "flakeModules" - "lib" - "clanModules/flake-module.nix" - "clanModules/borgbackup" + 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