Add vmTest for Nixinate #16
2 changed files with 49 additions and 43 deletions
|
@ -1,4 +1,5 @@
|
|||
{ pkgs, makeTest, inputs }:
|
||||
{
|
||||
vmTest = import ./vmTest { inherit pkgs makeTest inputs; };
|
||||
vmTestLocal = (import ./vmTest { inherit pkgs makeTest inputs; }).local;
|
||||
vmTestRemote = (import ./vmTest { inherit pkgs makeTest inputs; }).remote;
|
||||
}
|
||||
|
|
|
@ -54,51 +54,56 @@ let
|
|||
};
|
||||
deployScript = inputs.self.nixinate.${pkgs.hostPlatform.system} (callLocklessFlake "${exampleFlake}" { nixpkgs = inputs.nixpkgs; });
|
||||
exampleSystem = (callLocklessFlake "${exampleFlake}" { nixpkgs = inputs.nixpkgs; }).nixosConfigurations.nixinatee.config.system.build.toplevel;
|
||||
in
|
||||
makeTest {
|
||||
nodes = {
|
||||
nixinatee = { ... }: {
|
||||
imports = [
|
||||
./nixinateeBase.nix
|
||||
];
|
||||
virtualisation = {
|
||||
writableStore = true;
|
||||
};
|
||||
};
|
||||
nixinator = { ... }: {
|
||||
virtualisation = {
|
||||
additionalPaths = [
|
||||
(allDrvOutputs exampleSystem)
|
||||
mkNixinateTest = buildOn: makeTest {
|
||||
nodes = {
|
||||
nixinatee = { ... }: {
|
||||
imports = [
|
||||
./nixinateeBase.nix
|
||||
];
|
||||
virtualisation = {
|
||||
writableStore = true;
|
||||
};
|
||||
};
|
||||
nix = {
|
||||
extraOptions =
|
||||
let empty_registry = builtins.toFile "empty-flake-registry.json" ''{"flakes":[],"version":2}''; in
|
||||
''
|
||||
experimental-features = nix-command flakes
|
||||
flake-registry = ${empty_registry}
|
||||
'';
|
||||
registry.nixpkgs.flake = inputs.nixpkgs;
|
||||
nixinator = { ... }: {
|
||||
virtualisation = {
|
||||
additionalPaths = [
|
||||
(allDrvOutputs exampleSystem)
|
||||
]
|
||||
++ pkgs.lib.optional (buildOn == "remote") exampleFlake;
|
||||
};
|
||||
nix = {
|
||||
extraOptions =
|
||||
let empty_registry = builtins.toFile "empty-flake-registry.json" ''{"flakes":[],"version":2}''; in
|
||||
''
|
||||
experimental-features = nix-command flakes
|
||||
flake-registry = ${empty_registry}
|
||||
'';
|
||||
registry.nixpkgs.flake = inputs.nixpkgs;
|
||||
};
|
||||
};
|
||||
};
|
||||
testScript =
|
||||
''
|
||||
start_all()
|
||||
nixinatee.wait_for_unit("sshd.service")
|
||||
nixinator.wait_for_unit("multi-user.target")
|
||||
nixinator.succeed("mkdir ~/.ssh/")
|
||||
nixinator.succeed("ssh-keyscan -H nixinatee >> ~/.ssh/known_hosts")
|
||||
nixinator.succeed("exec ${deployScript.nixinate.nixinatee.program} >&2")
|
||||
nixinatee.wait_for_unit("nginx.service")
|
||||
nixinatee.wait_for_open_port("80")
|
||||
with subtest("Check that Nginx webserver can be reached by deployer after deployment"):
|
||||
assert "<title>Welcome to nginx!</title>" in nixinator.succeed(
|
||||
"curl -sSf http:/nixinatee/ | grep title"
|
||||
)
|
||||
with subtest("Check that Nginx webserver can be reached by deployee after deployment"):
|
||||
assert "<title>Welcome to nginx!</title>" in nixinatee.succeed(
|
||||
"curl -sSf http:/127.0.0.1/ | grep title"
|
||||
)
|
||||
'';
|
||||
};
|
||||
testScript =
|
||||
''
|
||||
start_all()
|
||||
nixinatee.wait_for_unit("sshd.service")
|
||||
nixinator.wait_for_unit("multi-user.target")
|
||||
nixinator.succeed("mkdir ~/.ssh/")
|
||||
nixinator.succeed("ssh-keyscan -H nixinatee >> ~/.ssh/known_hosts")
|
||||
nixinator.succeed("exec ${deployScript.nixinate.nixinatee.program} >&2")
|
||||
nixinatee.wait_for_unit("nginx.service")
|
||||
nixinatee.wait_for_open_port("80")
|
||||
with subtest("Check that Nginx webserver can be reached by deployer after deployment"):
|
||||
assert "<title>Welcome to nginx!</title>" in nixinator.succeed(
|
||||
"curl -sSf http:/nixinatee/ | grep title"
|
||||
)
|
||||
with subtest("Check that Nginx webserver can be reached by deployee after deployment"):
|
||||
assert "<title>Welcome to nginx!</title>" in nixinatee.succeed(
|
||||
"curl -sSf http:/127.0.0.1/ | grep title"
|
||||
)
|
||||
'';
|
||||
in
|
||||
{
|
||||
local = (mkNixinateTest "local");
|
||||
remote = (mkNixinateTest "remote");
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue