hydra: cleanup build machines config

This commit is contained in:
Sandro - 2023-06-22 16:29:10 +02:00
parent f274b0f43a
commit b31782f405
Signed by: sandro
GPG Key ID: 3AF5A43A3EECC2E5
1 changed files with 42 additions and 25 deletions

View File

@ -31,15 +31,45 @@ in
};
nix = {
buildMachines = [{
hostName = "client@dacbert.hq.c3d2.de";
system = lib.concatStringsSep "," [
# "aarch64-linux" # very slow compared to gallium
"armv6l-linux" "armv7l-linux"
];
supportedFeatures = [ "kvm" "nixos-test" ];
maxJobs = 1;
}];
buildMachines = let
localPlatforms = feature: !(builtins.elem feature [ "x86_64-linux" "i686-linux" ]);
# strips features that don't make sense on qemu-user
extraPlatforms = builtins.filter localPlatforms config.nix.settings.extra-platforms;
in [
{
hostName = "localhost";
maxJobs = config.nix.settings.max-jobs;
speedFactors = 10;
supportedFeatures = config.nix.settings.system-features;
systems = [ "x86_64-linux" "i686-linux" ];
}
# # local container to have an extra nix daemon for binfmt
# # NOTE: currently very, very slow and usually builds do not finish in any amount of time
# {
# hostName = "root@192.168.100.3";
# maxJobs = 4;
# speedFactors = 20;
# supportedFeatures = [ "big-parallel" "nixos-test" "benchmark" ];
# systems = lib.concatStringsSep "," extraPlatforms;
# }
{
hostName = "client@dacbert.hq.c3d2.de";
system = lib.concatStringsSep "," [
# "aarch64-linux" # very slow compared to gallium
"armv6l-linux" "armv7l-linux"
];
supportedFeatures = [ "kvm" "nixos-test" ];
maxJobs = 1;
}
{
hostName = "gallium.supersandro.de";
maxJobs = config.nix.settings.max-jobs;
speedFactors = 10;
sshUser = config.nix.remoteBuilder.name;
supportedFeatures = config.nix.settings.system-features;
system = "aarch64-linux";
}
];
daemonCPUSchedPolicy = "idle";
daemonIOSchedClass = "idle";
daemonIOSchedPriority = 7;
@ -315,22 +345,9 @@ in
MemorySwapMax = "64G";
};
hydra-init.preStart = let
localPlatforms = feature: !(builtins.elem feature [ "x86_64-linux" "i686-linux" ]);
# strips features that don't make sense on qemu-user
extraPlatforms = builtins.filter localPlatforms config.nix.settings.extra-platforms;
in
# both entries cannot have localhost alone because then hydra would merge them together but we want explictily two to not allow benchmarkts for binfmt emulated arches
# multiple container max-jobs by X because binfmt is very slow especially in configure scripts
''
cat << EOF > ~/machines
localhost x86_64-linux,i686-linux - ${toString config.nix.settings.max-jobs} 10 ${lib.concatStringsSep "," config.nix.settings.system-features} -
# local container to have an extra nix daemon for binfmt
# NOTE: currently very, very slow and usually builds do not finish in any amount of time
# root@192.168.100.3 ${lib.concatStringsSep "," extraPlatforms} - ${toString (config.nix.settings.max-jobs * 3)} 10 big-parallel,nixos-test -
# sandro's native aarch64 builder
${config.nix.remoteBuilder.name}@gallium.supersandro.de aarch64-linux - 4 20 big-parallel,nixos-test,benchmark -
EOF
hydra-init.preStart = ''
# TODO: remove after one deployment
rm -f ~/machines
'';
nix-daemon.serviceConfig = {