add checks for al formats

This commit is contained in:
DavHau 2023-05-29 11:01:19 +02:00
parent 9665903cf8
commit 435e0d366f
6 changed files with 68 additions and 34 deletions

View File

@ -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;};
}

View 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

View File

@ -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";
}

View File

@ -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}";

View File

@ -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"];

View File

@ -1,12 +0,0 @@
{
nixpkgs ? import <nixpkgs> {},
}: let
nixosSystem = import (nixpkgs.path + /nixos/lib/eval-config.nix);
conf = nixosSystem {
modules = [
./configuration.nix
./all-formats.nix
];
};
in
conf.config.system.formats