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> {}
}:
let
types = import ./types.nix { inherit pkgs; };
types = import ./types.nix { inherit lib pkgs; };
eval = cfg: lib.evalModules {
modules = lib.singleton {
# _file = toString input;

View file

@ -1,39 +1,58 @@
{ pkgs, lib, ... }:
let
disko = import (builtins.fetchGit {
url = "https://github.com/nix-community/disko";
ref = "master";
}) {
{
pkgs,
lib,
...
}: let
# We just import from the repository for testing here:
diskoNixos = import ../../. {
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 = {
type = "devices";
content = {
disk = {
sda = {
type = "table";
format = "msdos";
partitions = [{
type = "partition";
part-type = "primary";
start = "1M";
end = "100%";
bootable = true;
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
}];
device = "/dev/sda";
type = "device";
content = {
type = "table";
format = "msdos";
partitions = [
{
name = "root";
type = "partition";
part-type = "primary";
start = "1M";
end = "100%";
bootable = true;
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
};
}
];
};
};
};
};
in {
imports = [
(disko.config cfg)
(diskoNixos.config cfg)
];
environment.systemPackages = with pkgs;[
boot.loader.grub.devices = [ "/dev/sda" ];
system.stateVersion = "22.05";
environment.systemPackages = with pkgs; [
(pkgs.writeScriptBin "tsp-create" (disko.create 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; }) //
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
allTests

View file

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