nixfiles/config/services/hydra/nix-config.nix

77 lines
3.5 KiB
Nix
Raw Normal View History

2024-08-21 21:37:19 +02:00
{ config, lib, ... }: {
2024-10-23 12:50:16 +02:00
nix.buildMachines = let
base = [ "nixos-test" "benchmark" "big-parallel" "kvm" ];
in [
2024-05-11 16:02:39 +02:00
{
hostName = "localhost";
2024-08-21 21:37:19 +02:00
protocol = null;
maxJobs = 0;
speedFactor = 0;
systems = [ "x86_64-linux" ];
2024-10-23 12:50:16 +02:00
supportedFeatures = base;
2024-05-11 16:02:39 +02:00
}
{
hostName = "integra.kyouma.net";
2024-09-05 14:46:07 +02:00
sshUser = "nix-ssh";
2024-08-01 15:33:55 +02:00
maxJobs = 2;
speedFactor = 4;
systems = [ "aarch64-linux" ];
2024-10-23 12:50:16 +02:00
supportedFeatures = base;
2024-05-14 14:17:53 +02:00
sshKey = config.sops.secrets."services/hydra/id_ed25519_hydra".path;
2024-05-11 16:02:39 +02:00
}
2024-10-10 18:06:11 +02:00
{
2024-10-23 12:50:16 +02:00
hostName = "schrodinger.kyouma.net";
sshUser = "root";
maxJobs = 2;
speedFactor = 20;
systems = [ "riscv64-linux" ];
supportedFeatures = base ++ [ "gccarch-rv64imac" "gccarch-rv64imacfd" ];
2024-07-23 14:13:39 +02:00
sshKey = config.sops.secrets."services/hydra/id_ed25519_hydra".path;
}
2024-10-23 12:50:16 +02:00
] ++ lib.forEach (lib.genList (i: i + 1) 8) (num: {
hostName = "build-worker-0${toString num}";
2024-08-21 21:37:19 +02:00
sshUser = "root";
2024-10-10 21:43:11 +02:00
maxJobs = 2;
2024-08-21 21:37:19 +02:00
speedFactor = 20;
2024-10-10 18:06:11 +02:00
systems = [ "i686-linux" "x86_64-linux" ];
2024-09-03 14:27:57 +02:00
supportedFeatures = [ "nixos-test" "benchmark" "big-parallel" "gccarch-x86-64" "gccarch-x86-64-v2" "gccarch-x86-64-v3" ];
2024-07-23 14:13:39 +02:00
sshKey = config.sops.secrets."services/hydra/id_ed25519_hydra".path;
2024-08-21 21:37:19 +02:00
});
2024-10-23 12:50:16 +02:00
nix.distributedBuilds = true;
nixpkgs.config.allowUnsupportedSystem = true;
2024-10-24 15:37:46 +02:00
nix.gc = {
dates = "monthly";
options = lib.mkForce "--delete-older-than 90d";
};
2024-05-11 16:02:39 +02:00
nix.settings = {
allowed-uris = [
"github:"
"git+https://"
"git+ssh://"
2024-05-12 19:54:39 +02:00
"https://"
2024-05-11 16:02:39 +02:00
];
};
programs.ssh = {
2024-08-21 21:37:19 +02:00
knownHosts = {
"build-worker-03.nyantec.com".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEGqTY74c5g15DSNPNM2Wdr5jAwS7BFgX1XRnhtGOnJc";
"build-worker-04.nyantec.com".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICOq+5I+nlAN2lJoOtoXrYEDuZ/TMPMa43pIlablYigK";
"integra.kyouma.net".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIBwEQiSfaDrUAwgul4mktusBPcIVxI4pLNDh9DPopVU";
2024-10-23 12:50:16 +02:00
"schrodinger.kyouma.net".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKo7vZ6lS1wx76YsbAdhOsGcc20YMAW52ep8SZ/FCHDp";
2024-08-21 21:37:19 +02:00
"localhost".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPNVavo3YHVsrYwXRVISu7kDoknn+5inFGySn4azlB8P";
"[build-worker-kyoumanet.fly.dev]:2201".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDL2M97UBHg9aUfjDUxzmzg1r0ga0m3/stummBVwuEAB";
"[build-worker-kyoumanet.fly.dev]:2202".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOTwVKL0P0chPM2Gz23rbT94844+w1CGJdCaZdzfjThz";
"[build-worker-kyoumanet.fly.dev]:2203".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAjy2eZGJQeAYy0+fLgW9jiS0jVY2LInY0NDMnzCvvKp";
"[build-worker-kyoumanet.fly.dev]:2204".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN72OyD9LYy4hq0WZ7ie5RPV+G54UreEJiA/RubjGoe9";
2024-10-10 21:43:11 +02:00
"[build-worker-kyoumanet.fly.dev]:2205".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICNh1o1I98XrI2XmOI6Q0aHPfyLCIQwKkKOxGUUeXL9v";
"[build-worker-kyoumanet.fly.dev]:2206".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGf0kxGgwOG9KhUhvxxTSiQC5YikrzZXKDgSpBw33qN4";
"[build-worker-kyoumanet.fly.dev]:2207".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL9z95a6Fn/dB+iNigEYpuJdBnBwCkIZYaKHcFbGP+RY";
"[build-worker-kyoumanet.fly.dev]:2208".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAk+FNMhTfAVqk3MfLp4QiG/i5ti53DlpnC0q+sOvU9O";
2024-08-21 21:37:19 +02:00
};
2024-10-23 12:50:16 +02:00
extraConfig = lib.concatLines (lib.genList (i: ''
Host build-worker-0${toString (i + 1)}
2024-10-10 21:43:11 +02:00
Hostname build-worker-kyoumanet.fly.dev
2024-10-23 12:50:16 +02:00
Port 220${toString (i + 1)}
'') 8);
2024-05-11 16:02:39 +02:00
};
}