nixpkgs/nixos/tests/hydra/common.nix
Maximilian Bosch f5d964724d
nixos/tests/hydra*: fix eval
To specify distributed build-machines, `nix.distributedBuilds` must be
set to `true` now[1].

[1] 67b6e5639126ab6e8ec5d2b303aa9736a626b609
2020-08-04 15:29:08 +02:00

49 lines
1.4 KiB
Nix

{ system, ... }:
{
baseConfig = { pkgs, ... }: let
trivialJob = pkgs.writeTextDir "trivial.nix" ''
{ trivial = builtins.derivation {
name = "trivial";
system = "${system}";
builder = "/bin/sh";
allowSubstitutes = false;
preferLocalBuild = true;
args = ["-c" "echo success > $out; exit 0"];
};
}
'';
createTrivialProject = pkgs.stdenv.mkDerivation {
name = "create-trivial-project";
dontUnpack = true;
buildInputs = [ pkgs.makeWrapper ];
installPhase = "install -m755 -D ${./create-trivial-project.sh} $out/bin/create-trivial-project.sh";
postFixup = ''
wrapProgram "$out/bin/create-trivial-project.sh" --prefix PATH ":" ${pkgs.stdenv.lib.makeBinPath [ pkgs.curl ]} --set EXPR_PATH ${trivialJob}
'';
};
in {
virtualisation.memorySize = 2048;
time.timeZone = "UTC";
environment.systemPackages = [ createTrivialProject pkgs.jq ];
services.hydra = {
enable = true;
# Hydra needs those settings to start up, so we add something not harmfull.
hydraURL = "example.com";
notificationSender = "example@example.com";
extraConfig = ''
email_notification = 1
'';
};
services.postfix.enable = true;
nix = {
distributedBuilds = true;
buildMachines = [{
hostName = "localhost";
systems = [ system ];
}];
binaryCaches = [];
};
};
}