mirror of
https://github.com/nix-community/nixos-generators.git
synced 2024-09-11 12:15:29 +03:00
add checks for al formats
This commit is contained in:
parent
9665903cf8
commit
435e0d366f
@ -1,19 +1,24 @@
|
||||
{ lib, extendModules, ... }: let
|
||||
|
||||
{
|
||||
lib,
|
||||
extendModules,
|
||||
...
|
||||
}: let
|
||||
# attrs of all format modules from ./formats
|
||||
formatModules = lib.flip lib.mapAttrs' (builtins.readDir ./formats)
|
||||
formatModules =
|
||||
lib.flip lib.mapAttrs' (builtins.readDir ./formats)
|
||||
(fname: type: {
|
||||
name = lib.removeSuffix ".nix" fname;
|
||||
value = ./formats + "/${fname}";
|
||||
});
|
||||
|
||||
# function to evaluate a given format to a config
|
||||
evalFormat = formatModule: extendModules {
|
||||
modules = [
|
||||
./format-module.nix
|
||||
formatModule
|
||||
];
|
||||
};
|
||||
evalFormat = formatModule:
|
||||
extendModules {
|
||||
modules = [
|
||||
./format-module.nix
|
||||
formatModule
|
||||
];
|
||||
};
|
||||
|
||||
# evaluated configs for all formats
|
||||
allConfigs = lib.mapAttrs (formatName: evalFormat) formatModules;
|
||||
@ -23,7 +28,6 @@
|
||||
formatName: conf:
|
||||
conf.config.system.build.${conf.config.formatAttr}
|
||||
);
|
||||
|
||||
in {
|
||||
_file = ./all-formats.nix;
|
||||
# This deliberate key makes sure this module will be deduplicated
|
||||
@ -43,4 +47,3 @@ in {
|
||||
# expose all formats
|
||||
config.system = {inherit formats;};
|
||||
}
|
||||
|
||||
|
33
checks/test-all-formats.nix
Normal file
33
checks/test-all-formats.nix
Normal file
@ -0,0 +1,33 @@
|
||||
{
|
||||
nixpkgs ? <nixpkgs>,
|
||||
system ? builtins.currentSystem,
|
||||
lib ? import (nixpkgs + /lib),
|
||||
}: let
|
||||
nixosSystem = import (nixpkgs + /nixos/lib/eval-config.nix);
|
||||
|
||||
conf = nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
../configuration.nix
|
||||
../all-formats.nix
|
||||
];
|
||||
};
|
||||
|
||||
exclude =
|
||||
(lib.optionalAttrs (system != "aarch64-linux") {
|
||||
sd-aarch64 = true;
|
||||
sd-aarch64-installer = true;
|
||||
})
|
||||
// (lib.optionalAttrs (system != "x86_64-linux") {
|
||||
azure = true;
|
||||
vagrant-virtualbox = true;
|
||||
virtualbox = true;
|
||||
vmware = true;
|
||||
});
|
||||
|
||||
testedFormats =
|
||||
lib.filterAttrs
|
||||
(name: _: ! exclude ? ${name})
|
||||
conf.config.system.formats;
|
||||
in
|
||||
testedFormats
|
@ -10,6 +10,6 @@
|
||||
networking.firewall.allowedTCPPorts = [80];
|
||||
|
||||
users.users.root.password = "nixos";
|
||||
services.openssh.permitRootLogin = lib.mkDefault "yes";
|
||||
services.openssh.settings.PermitRootLogin = lib.mkDefault "yes";
|
||||
services.getty.autologinUser = lib.mkDefault "root";
|
||||
}
|
||||
|
28
flake.nix
28
flake.nix
@ -108,15 +108,25 @@
|
||||
};
|
||||
});
|
||||
|
||||
checks = forAllSystems (system: {
|
||||
inherit
|
||||
(self.packages.${system})
|
||||
nixos-generate
|
||||
;
|
||||
is-formatted = import ./checks/is-formatted.nix {
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
};
|
||||
});
|
||||
checks =
|
||||
nixpkgs.lib.genAttrs ["x86_64-linux" "aarch64-linux"]
|
||||
(
|
||||
system: let
|
||||
allFormats = import ./checks/test-all-formats.nix {
|
||||
inherit nixpkgs system;
|
||||
};
|
||||
in
|
||||
{
|
||||
inherit
|
||||
(self.packages.${system})
|
||||
nixos-generate
|
||||
;
|
||||
is-formatted = import ./checks/is-formatted.nix {
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
};
|
||||
}
|
||||
// allFormats
|
||||
);
|
||||
|
||||
devShells = forAllSystems (system: let
|
||||
pkgs = nixpkgs.legacyPackages."${system}";
|
||||
|
@ -9,7 +9,7 @@
|
||||
];
|
||||
|
||||
# for installer
|
||||
isoImage.isoName = "nixos.iso";
|
||||
isoImage.isoName = lib.mkForce "nixos.iso";
|
||||
|
||||
# override installation-cd-base and enable wpa and sshd start at boot
|
||||
systemd.services.wpa_supplicant.wantedBy = lib.mkForce ["multi-user.target"];
|
||||
|
Loading…
Reference in New Issue
Block a user