mirror of
https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api.git
synced 2025-01-10 01:49:32 +00:00
Merge pull request 'flake VM: add additional /dev/vdb disk with empty ext4 FS' (#102) from vm-disk into master
Reviewed-on: https://git.selfprivacy.org/SelfPrivacy/selfprivacy-rest-api/pulls/102 Reviewed-by: Inex Code <inex.code@selfprivacy.org> Reviewed-by: houkime <houkime@protonmail.com>
This commit is contained in:
commit
d464f3b82d
76
flake.nix
76
flake.nix
|
@ -40,7 +40,7 @@
|
||||||
|
|
||||||
[testing in NixOS VM]
|
[testing in NixOS VM]
|
||||||
|
|
||||||
nixos-test-driver - run an interactive NixOS VM with with all dependencies
|
nixos-test-driver - run an interactive NixOS VM with all dependencies included and 2 disk volumes
|
||||||
pytest-vm - run pytest in an ephemeral NixOS VM with Redis, accepting pytest arguments
|
pytest-vm - run pytest in an ephemeral NixOS VM with Redis, accepting pytest arguments
|
||||||
'';
|
'';
|
||||||
in
|
in
|
||||||
|
@ -78,7 +78,7 @@
|
||||||
};
|
};
|
||||||
nixosModules.default =
|
nixosModules.default =
|
||||||
import ./nixos/module.nix self.packages.${system}.default;
|
import ./nixos/module.nix self.packages.${system}.default;
|
||||||
devShells.${system}.default = pkgs.mkShell {
|
devShells.${system}.default = pkgs.mkShellNoCC {
|
||||||
name = "SP API dev shell";
|
name = "SP API dev shell";
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
nixpkgs-fmt
|
nixpkgs-fmt
|
||||||
|
@ -113,38 +113,48 @@
|
||||||
"black --check ${self.outPath} > $out";
|
"black --check ${self.outPath} > $out";
|
||||||
default =
|
default =
|
||||||
pkgs.testers.runNixOSTest {
|
pkgs.testers.runNixOSTest {
|
||||||
imports = [{
|
name = "default";
|
||||||
name = "default";
|
nodes.machine = { lib, pkgs, ... }: {
|
||||||
nodes.machine = { lib, pkgs, ... }: {
|
# 2 additional disks (1024 MiB and 200 MiB) with empty ext4 FS
|
||||||
imports = [{
|
virtualisation.emptyDiskImages = [ 1024 200 ];
|
||||||
boot.consoleLogLevel = lib.mkForce 3;
|
virtualisation.fileSystems."/volumes/vdb" = {
|
||||||
documentation.enable = false;
|
autoFormat = true;
|
||||||
services.journald.extraConfig = lib.mkForce "";
|
device = "/dev/vdb"; # this name is chosen by QEMU, not here
|
||||||
services.redis.servers.sp-api = {
|
fsType = "ext4";
|
||||||
enable = true;
|
noCheck = true;
|
||||||
save = [ ];
|
|
||||||
port = 6379; # FIXME
|
|
||||||
settings.notify-keyspace-events = "KEA";
|
|
||||||
};
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
python-env
|
|
||||||
# TODO: these can be passed via wrapper script around app
|
|
||||||
rclone
|
|
||||||
restic
|
|
||||||
];
|
|
||||||
environment.variables.TEST_MODE = "true";
|
|
||||||
systemd.tmpfiles.settings.src.${vmtest-src-dir}.L.argument =
|
|
||||||
self.outPath;
|
|
||||||
}];
|
|
||||||
};
|
};
|
||||||
testScript = ''
|
virtualisation.fileSystems."/volumes/vdc" = {
|
||||||
start_all()
|
autoFormat = true;
|
||||||
machine.succeed("cd ${vmtest-src-dir} && coverage run --data-file=/tmp/.coverage -m pytest -p no:cacheprovider -v >&2")
|
device = "/dev/vdc"; # this name is chosen by QEMU, not here
|
||||||
machine.succeed("coverage xml --rcfile=${vmtest-src-dir}/.coveragerc --data-file=/tmp/.coverage >&2")
|
fsType = "ext4";
|
||||||
machine.copy_from_vm("coverage.xml", ".")
|
noCheck = true;
|
||||||
machine.succeed("coverage report >&2")
|
};
|
||||||
'';
|
boot.consoleLogLevel = lib.mkForce 3;
|
||||||
}];
|
documentation.enable = false;
|
||||||
|
services.journald.extraConfig = lib.mkForce "";
|
||||||
|
services.redis.servers.sp-api = {
|
||||||
|
enable = true;
|
||||||
|
save = [ ];
|
||||||
|
port = 6379; # FIXME
|
||||||
|
settings.notify-keyspace-events = "KEA";
|
||||||
|
};
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
python-env
|
||||||
|
# TODO: these can be passed via wrapper script around app
|
||||||
|
rclone
|
||||||
|
restic
|
||||||
|
];
|
||||||
|
environment.variables.TEST_MODE = "true";
|
||||||
|
systemd.tmpfiles.settings.src.${vmtest-src-dir}.L.argument =
|
||||||
|
self.outPath;
|
||||||
|
};
|
||||||
|
testScript = ''
|
||||||
|
start_all()
|
||||||
|
machine.succeed("cd ${vmtest-src-dir} && coverage run --data-file=/tmp/.coverage -m pytest -p no:cacheprovider -v >&2")
|
||||||
|
machine.succeed("coverage xml --rcfile=${vmtest-src-dir}/.coveragerc --data-file=/tmp/.coverage >&2")
|
||||||
|
machine.copy_from_vm("coverage.xml", ".")
|
||||||
|
machine.succeed("coverage report >&2")
|
||||||
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue