2022-06-12 15:39:15 +00:00
|
|
|
{
|
|
|
|
pkgs,
|
|
|
|
lib,
|
|
|
|
config,
|
|
|
|
system,
|
|
|
|
...
|
2022-11-10 11:08:59 +00:00
|
|
|
}: let
|
|
|
|
post-build-hook = pkgs.writeScript "post-build-hook" ''
|
|
|
|
#!/bin/sh
|
|
|
|
set -euf
|
|
|
|
export IFS=' '
|
|
|
|
${pkgs.nix}/bin/nix-store -r $DRV_PATH
|
|
|
|
for f in $DRV_PATH $OUT_PATHS; do
|
|
|
|
${pkgs.nix}/bin/nix store sign --key-file ${config.sops.secrets."services/nix/cache-key".path} $f
|
2022-11-10 14:02:15 +00:00
|
|
|
${pkgs.nix}/bin/nix copy --to 's3://cache-chir-rs?scheme=https&endpoint=s3.us-west-000.backblazeb2.com&secret-key=${config.sops.secrets."services/nix/cache-key".path}&multipart-upload=true&compression=zstd&compression-level=15' $f
|
2022-11-10 11:08:59 +00:00
|
|
|
done
|
|
|
|
'';
|
|
|
|
in {
|
2022-01-27 16:16:42 +00:00
|
|
|
imports = [
|
|
|
|
./workarounds
|
|
|
|
];
|
2022-01-14 13:03:14 +00:00
|
|
|
nixpkgs.config.allowUnfree = true;
|
|
|
|
nix = {
|
2022-02-08 08:55:28 +00:00
|
|
|
settings = {
|
|
|
|
sandbox = true;
|
2022-06-12 15:39:15 +00:00
|
|
|
trusted-users = ["@wheel"];
|
2022-04-12 09:37:53 +00:00
|
|
|
require-sigs = true;
|
2022-02-08 09:48:37 +00:00
|
|
|
builders-use-substitutes = true;
|
2022-03-03 07:50:45 +00:00
|
|
|
substituters = [
|
2022-11-16 14:13:42 +00:00
|
|
|
"https://cache.chir.rs/"
|
2022-09-29 19:33:31 +00:00
|
|
|
"https://hydra.int.chir.rs/"
|
2022-04-12 09:33:58 +00:00
|
|
|
];
|
|
|
|
trusted-public-keys = [
|
|
|
|
"nixcache:8KKuGz95Pk4UJ5W/Ni+pN+v+LDTkMMFV4yrGmAYgkDg="
|
|
|
|
"hydra.nixos.org-1:CNHJZBh9K4tP3EKF6FkkgeVYsS3ohTl+oS0Qa8bezVs="
|
2022-03-03 07:50:45 +00:00
|
|
|
];
|
2022-11-10 11:08:59 +00:00
|
|
|
post-build-hook = "${post-build-hook}";
|
2022-02-08 08:55:28 +00:00
|
|
|
};
|
2022-09-13 17:27:49 +00:00
|
|
|
package = pkgs.nix;
|
2022-01-14 13:03:14 +00:00
|
|
|
extraOptions = ''
|
2022-04-18 14:07:18 +00:00
|
|
|
experimental-features = nix-command flakes ca-derivations
|
2022-01-14 13:03:14 +00:00
|
|
|
'';
|
|
|
|
gc = {
|
|
|
|
automatic = true;
|
|
|
|
dates = "weekly";
|
|
|
|
options = "--delete-older-than 7d";
|
|
|
|
};
|
2022-02-08 09:48:37 +00:00
|
|
|
buildMachines = [
|
2022-09-20 12:24:29 +00:00
|
|
|
{
|
|
|
|
hostName = "build-nas";
|
|
|
|
systems = [
|
|
|
|
"armv7l-linux"
|
|
|
|
"aarch64-linux"
|
|
|
|
"powerpc-linux"
|
|
|
|
"powerpc64-linux"
|
|
|
|
"powerpc64le-linux"
|
|
|
|
"riscv32-linux"
|
|
|
|
"riscv64-linux"
|
|
|
|
"wasm32-wasi"
|
|
|
|
"x86_64-linux"
|
|
|
|
"i686-linux"
|
|
|
|
];
|
|
|
|
maxJobs = 12;
|
|
|
|
speedFactor = 1;
|
|
|
|
supportedFeatures = ["kvm" "nixos-test" "big-parallel" "benchmark" "gccarch-znver1" "gccarch-skylake" "ca-derivations"];
|
|
|
|
}
|
2022-03-20 07:02:54 +00:00
|
|
|
{
|
|
|
|
hostName = "build-pc";
|
|
|
|
systems = [
|
|
|
|
"armv7l-linux"
|
|
|
|
"aarch64-linux"
|
|
|
|
"powerpc-linux"
|
|
|
|
"powerpc64-linux"
|
|
|
|
"powerpc64le-linux"
|
|
|
|
"riscv32-linux"
|
|
|
|
"riscv64-linux"
|
|
|
|
"wasm32-wasi"
|
|
|
|
"x86_64-linux"
|
|
|
|
"i686-linux"
|
|
|
|
];
|
|
|
|
maxJobs = 16;
|
2022-09-20 12:24:29 +00:00
|
|
|
speedFactor = 2;
|
2022-06-12 15:39:15 +00:00
|
|
|
supportedFeatures = ["kvm" "nixos-test" "big-parallel" "benchmark" "gccarch-znver2" "gccarch-znver1" "gccarch-skylake" "ca-derivations"];
|
2022-03-20 07:02:54 +00:00
|
|
|
}
|
2022-02-08 09:48:37 +00:00
|
|
|
];
|
|
|
|
distributedBuilds = true;
|
2022-01-14 13:03:14 +00:00
|
|
|
};
|
2022-01-14 13:07:01 +00:00
|
|
|
system.autoUpgrade = {
|
|
|
|
enable = true;
|
2022-06-23 15:29:59 +00:00
|
|
|
flake = "git+https://git.chir.rs/darkkirb/nixos-config?ref=nixos-config/nixos-config/${config.networking.hostName}.${system}";
|
2022-01-14 13:07:01 +00:00
|
|
|
flags = [
|
|
|
|
"--no-write-lock-file"
|
|
|
|
"-L" # print build logs
|
|
|
|
];
|
2022-02-18 19:43:14 +00:00
|
|
|
dates = "hourly";
|
2022-01-14 13:07:01 +00:00
|
|
|
};
|
2022-01-27 16:16:42 +00:00
|
|
|
systemd.services.nix-daemon.environment.TMPDIR = "/build";
|
2022-11-10 11:08:59 +00:00
|
|
|
sops.secrets."services/nix/cache-key" = {};
|
2022-01-14 13:03:14 +00:00
|
|
|
}
|