diff --git a/tests/default.nix b/tests/default.nix index 93de21b..0826e0e 100644 --- a/tests/default.nix +++ b/tests/default.nix @@ -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; } diff --git a/tests/vmTest/default.nix b/tests/vmTest/default.nix index 5c86485..cbbcedb 100644 --- a/tests/vmTest/default.nix +++ b/tests/vmTest/default.nix @@ -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 "