feat: NixOS tests using systemd-nspawn containers

This commit is contained in:
Ryan Yin
2026-06-22 09:02:06 +08:00
parent be429dea2e
commit 8462d34ade
5 changed files with 79 additions and 6 deletions
@@ -0,0 +1,11 @@
{
lib,
outputs,
}:
lib.genAttrs (builtins.attrNames outputs.nixosConfigurations) (_: {
autoAllocateUids = true;
hasUidRange = true;
hasAutoAllocateUidsFeature = true;
hasCgroupsFeature = true;
hasDevNetSandboxPath = true;
})
@@ -0,0 +1,21 @@
{
lib,
outputs,
}:
lib.genAttrs (builtins.attrNames outputs.nixosConfigurations) (
name:
let
settings = outputs.nixosConfigurations.${name}.config.nix.settings;
effectiveSystemFeatures =
(settings.system-features or [ ]) ++ (settings.extra-system-features or [ ]);
in
{
autoAllocateUids = settings.auto-allocate-uids or false;
hasUidRange = builtins.elem "uid-range" effectiveSystemFeatures;
hasAutoAllocateUidsFeature = builtins.elem "auto-allocate-uids" (
settings.experimental-features or [ ]
);
hasCgroupsFeature = builtins.elem "cgroups" (settings.experimental-features or [ ]);
hasDevNetSandboxPath = builtins.elem "/dev/net" (settings.sandbox-paths or [ ]);
}
)