tests: add buildwmwithbootloader stub
This commit is contained in:
parent
71ad857210
commit
617a84a384
3 changed files with 86 additions and 0 deletions
32
tests/buildvmwithbootloader/build-vm.nix
Normal file
32
tests/buildvmwithbootloader/build-vm.nix
Normal file
|
@ -0,0 +1,32 @@
|
|||
{ system ? builtins.currentSystem
|
||||
, vmPkgsPath
|
||||
, buildPkgsPath
|
||||
, nixosConfigPath
|
||||
}:
|
||||
|
||||
let
|
||||
buildPkgs = import buildPkgsPath {};
|
||||
vmPkgs'= import vmPkgsPath {};
|
||||
vmPkgs = vmPkgs' // {
|
||||
runtimeShell = "${vmPkgs'.bash}/${vmPkgs'.bash.shellPath}";
|
||||
};
|
||||
|
||||
importWithPkgs = { path, pkgs }: args: import path (args // { inherit pkgs; });
|
||||
|
||||
nixosConfig = importWithPkgs { path = "${nixosConfigPath}"; pkgs = vmPkgs; };
|
||||
vmConfig = importWithPkgs { path = "${buildPkgsPath}/nixos/modules/virtualisation/qemu-vm.nix"; pkgs = vmPkgs; };
|
||||
evalConfig = importWithPkgs { path = "${vmPkgsPath}/nixos/lib/eval-config.nix"; pkgs = null; };
|
||||
|
||||
vmWithBootLoaderConfigMixed = (evalConfig {
|
||||
modules = [
|
||||
nixosConfig
|
||||
vmConfig
|
||||
{
|
||||
virtualisation.useBootLoader = true;
|
||||
}
|
||||
|
||||
];
|
||||
}).config;
|
||||
in {
|
||||
vmWithBootLoaderMixed = vmWithBootLoaderConfigMixed.system.build.vm;
|
||||
}
|
16
tests/buildvmwithbootloader/build-vm.sh
Executable file
16
tests/buildvmwithbootloader/build-vm.sh
Executable file
|
@ -0,0 +1,16 @@
|
|||
#!/usr/bin/env bash
|
||||
set -x
|
||||
rm *.qcow2
|
||||
rm result*
|
||||
set -e
|
||||
|
||||
BUILD_NIXPKGS="${BUILD_NIXPKGS:-${HOME}/src/github/NixOS/nixpkgs.dev}"
|
||||
NIXOS_CONFIG="${NIXOS_CONFIG_OVERRIDE:-${PWD}/configuration.nix}"
|
||||
|
||||
nix-build -K --show-trace build-vm.nix \
|
||||
--arg vmPkgsPath '<nixos-18.03>' \
|
||||
--argstr buildPkgsPath "${BUILD_NIXPKGS}" \
|
||||
--argstr nixosConfigPath "${NIXOS_CONFIG}" \
|
||||
-A vmWithBootLoaderMixed
|
||||
|
||||
./result/bin/run-*-vm
|
38
tests/buildvmwithbootloader/configuration.nix
Normal file
38
tests/buildvmwithbootloader/configuration.nix
Normal file
|
@ -0,0 +1,38 @@
|
|||
{ pkgs, lib, ... }:
|
||||
let
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
boot.loader.grub = {
|
||||
enable = true;
|
||||
version = 2;
|
||||
device = "/dev/vda";
|
||||
efiSupport = true;
|
||||
enableCryptodisk = true;
|
||||
};
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
|
||||
boot.initrd.luks.devices = [ {
|
||||
name = "crypt";
|
||||
device = "/dev/disk/uuid/463d886d-7dfe-421b-8cef-f9af3a3fa09d";
|
||||
preLVM = true;
|
||||
allowDiscards = true;
|
||||
}
|
||||
];
|
||||
fileSystems."/" = {
|
||||
label = "root";
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
label = "boot";
|
||||
};
|
||||
|
||||
boot.tmpOnTmpfs = true;
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
|
||||
|
||||
users.extraUsers.root.initialPassword = lib.mkForce "toorroot";
|
||||
users.mutableUsers = false;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue