50 lines
1.4 KiB
Nix
50 lines
1.4 KiB
Nix
{ nix-vm-test, nixpkgs, system, pkgs, ... }:
|
|
let
|
|
image = nix-vm-test.lib.${system}.debian.images."13";
|
|
|
|
generic = import "${nix-vm-test}/generic" { inherit pkgs nixpkgs; inherit (pkgs) lib; };
|
|
|
|
makeVmTestForImage =
|
|
image:
|
|
{
|
|
testScript,
|
|
sharedDirs ? {},
|
|
diskSize ? null,
|
|
config ? { }
|
|
}:
|
|
generic.makeVmTest {
|
|
inherit
|
|
system
|
|
testScript
|
|
sharedDirs;
|
|
image = nix-vm-test.lib.${system}.debian.prepareDebianImage {
|
|
inherit diskSize;
|
|
hostPkgs = pkgs;
|
|
originalImage = image;
|
|
};
|
|
machineConfigModule = config;
|
|
};
|
|
|
|
vmTest = makeVmTestForImage image {
|
|
diskSize = "10G";
|
|
sharedDirs = {
|
|
debDir = {
|
|
source = "${./.}";
|
|
target = "/mnt";
|
|
};
|
|
};
|
|
testScript = ''
|
|
vm.wait_for_unit("multi-user.target")
|
|
vm.succeed("apt-get update && apt-get -y install mariadb-server build-essential curl")
|
|
vm.succeed("curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y")
|
|
vm.succeed("source /root/.cargo/env && cargo install cargo-deb")
|
|
vm.succeed("cp -r /mnt /root/src && chmod -R +w /root/src")
|
|
vm.succeed("source /root/.cargo/env && cd /root/src && ./create-deb.sh")
|
|
'';
|
|
config.nodes.vm = {
|
|
virtualisation.memorySize = 8192;
|
|
virtualisation.cpus = 4;
|
|
};
|
|
};
|
|
in vmTest.driverInteractive
|