add test for standalone nixos config

This commit is contained in:
Jörg Thalheim 2022-09-04 13:09:10 +02:00
parent 65bd5a97f8
commit 68f950bf20
4 changed files with 50 additions and 29 deletions

View file

@ -2,7 +2,7 @@
, pkgs ? import <nixpkgs> {} , pkgs ? import <nixpkgs> {}
}: }:
let let
types = import ./types.nix { inherit pkgs; }; types = import ./types.nix { inherit lib pkgs; };
eval = cfg: lib.evalModules { eval = cfg: lib.evalModules {
modules = lib.singleton { modules = lib.singleton {
# _file = toString input; # _file = toString input;

View file

@ -1,18 +1,34 @@
{ pkgs, lib, ... }: {
let pkgs,
disko = import (builtins.fetchGit { lib,
url = "https://github.com/nix-community/disko"; ...
ref = "master"; }: let
}) { # We just import from the repository for testing here:
diskoNixos = import ../../. {
inherit lib; inherit lib;
}; };
disko = import ../../. {
inherit lib;
inherit pkgs;
};
# In your own system use something like this:
#import (builtins.fetchGit {
# url = "https://github.com/nix-community/disko";
# ref = "master";
#}) {
# inherit lib;
#};
cfg = { cfg = {
type = "devices"; disk = {
content = {
sda = { sda = {
device = "/dev/sda";
type = "device";
content = {
type = "table"; type = "table";
format = "msdos"; format = "msdos";
partitions = [{ partitions = [
{
name = "root";
type = "partition"; type = "partition";
part-type = "primary"; part-type = "primary";
start = "1M"; start = "1M";
@ -23,17 +39,20 @@ let
format = "ext4"; format = "ext4";
mountpoint = "/"; mountpoint = "/";
}; };
}]; }
];
};
}; };
}; };
}; };
in { in {
imports = [ imports = [
(disko.config cfg) (diskoNixos.config cfg)
]; ];
boot.loader.grub.devices = [ "/dev/sda" ];
system.stateVersion = "22.05";
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
(pkgs.writeScriptBin "tsp-create" (disko.create cfg)) (pkgs.writeScriptBin "tsp-create" (disko.create cfg))
(pkgs.writeScriptBin "tsp-mount" (disko.mount cfg)) (pkgs.writeScriptBin "tsp-mount" (disko.mount cfg))
]; ];
} }

View file

@ -20,6 +20,8 @@ let
); );
allTests = lib.genAttrs (allTestFilenames) (test: import (./. + "/${test}.nix") { inherit makeDiskoTest; }) // allTests = lib.genAttrs (allTestFilenames) (test: import (./. + "/${test}.nix") { inherit makeDiskoTest; }) //
evalTest "lvm-luks-example" ../example/config.nix; evalTest "lvm-luks-example" ../example/config.nix // {
standalone = (pkgs.nixos [ ../example/stand-alone/configuration.nix ]).config.system.build.toplevel;
};
in in
allTests allTests

View file

@ -1,5 +1,5 @@
{ pkgs ? import <nixpkgs> {} }: { lib, pkgs }:
with pkgs.lib; with lib;
with builtins; with builtins;
rec { rec {