colmena/integration-tests/build-on-target/default.nix
2023-01-27 23:44:41 -07:00

37 lines
1.3 KiB
Nix

{ pkgs }:
let
tools = pkgs.callPackage ../tools.nix {
deployers = [ "deployer" "alpha" "beta" ];
targets = [];
};
in tools.runTest {
name = "colmena-build-on-target";
colmena.test = {
bundle = ./.;
testScript = ''
# The actual build will be initiated on alpha
deployer.succeed("cd /tmp/bundle && ${tools.colmenaExec} apply --on alpha")
with subtest("Check that the new configurations are indeed applied"):
alpha.succeed("grep SUCCESS /etc/deployment")
alpha_profile = alpha.succeed("readlink /run/current-system")
with subtest("Check that the built profile is not on the deployer"):
deployer.fail(f"nix-store -qR {alpha_profile}")
with subtest("Check that we can override per-node settings and build locally"):
deployer.succeed("cd /tmp/bundle && ${tools.colmenaExec} build --on alpha --no-build-on-target")
deployer.succeed(f"nix-store -qR {alpha_profile}")
with subtest("Check that we can override per-node settings and build remotely"):
deployer.succeed("cd /tmp/bundle && ${tools.colmenaExec} apply --on beta --build-on-target")
beta.succeed("grep SUCCESS /etc/deployment")
profile = beta.succeed("readlink /run/current-system")
deployer.fail(f"nix-store -qR {profile}")
'';
};
}