{ lib, pkgs, ... }: let inherit (import ./constants.nix) pathToRoot pathFromRoot; inherit (pkgs) system; deployment-config = { inherit pathToRoot pathFromRoot; nodeName = "ssh"; }; deployment = (import ../common/data-model.nix { inherit system; config = deployment-config; })."ssh-deployment".ssh-host; in { _class = "nixosTest"; imports = [ ../common/data-model-options.nix ]; name = "deployment-model"; sourceFileset = lib.fileset.unions [ ../../data-model.nix ../../function.nix ../../nixos.nix ../../run/ssh-single-host/run.sh ../../../npins/default.nix ../../../npins/sources.json ../common/data-model.nix ../common/data-model-options.nix ./constants.nix ]; nodes.deployer = { pkgs, ... }: { environment.systemPackages = with pkgs; [ jq ]; system.extraDependenciesFromModule = { pkgs, ... }: { environment.systemPackages = with pkgs; [ hello ]; }; }; extraTestScript = '' with subtest("Check the status before deployment"): ssh.fail("hello 1>&2") with subtest("Run the deployment"): deployer.succeed(""" ${deployment.run} """) ssh.wait_for_unit("multi-user.target") ssh.succeed("su - operator -c hello 1>&2") ''; }