mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-11-13 12:13:46 +01:00
* fix(colmena): expose colmenaHive for the new evaluator nixpkgs now ships the nix-community Colmena rewrite, whose default evaluator reads an evaluated colmenaHive flake output instead of the raw colmena hive. Without it every colmena apply recipe failed with "does not provide attribute colmenaHive". Add a colmena input pinned to the same v0.5.0 as nixpkgs and expose colmenaHive = colmena.lib.makeHive <raw hive>, with the raw hive kept as an internal binding rather than a flake output of its own. * chore: clean up stale colmena and aquamarine references - point the Colmena links at nix-community/colmena after the move - rename the security-aquamarine-metrics test to youko-metrics (it already tested youko) and update the outputs README - drop the commented aquamarine remote-builder example
66 lines
2.1 KiB
Nix
66 lines
2.1 KiB
Nix
{ myvars, ... }:
|
|
{
|
|
####################################################################
|
|
#
|
|
# NixOS's Configuration for Remote Building / Distributed Building
|
|
#
|
|
# Related Docs:
|
|
# 1. https://github.com/NixOS/nix/issues/7380
|
|
# 2. https://nixos.wiki/wiki/Distributed_build
|
|
# 3. https://github.com/NixOS/nix/issues/2589
|
|
#
|
|
####################################################################
|
|
|
|
# set local's max-job to 0 to force remote building(disable local building)
|
|
# nix.settings.max-jobs = 0;
|
|
nix.distributedBuilds = true;
|
|
nix.buildMachines =
|
|
let
|
|
sshUser = myvars.username;
|
|
# ssh key's path on local machine; a decrypted secret AI agents must not read
|
|
sshKey = "/etc/agenix/ssh-key-romantic";
|
|
systems = [
|
|
# native arch
|
|
"x86_64-linux"
|
|
|
|
# emulated arch using binfmt_misc and qemu-user
|
|
"aarch64-linux"
|
|
"riscv64-linux"
|
|
];
|
|
# all available system features are poorly documentd here:
|
|
# https://github.com/NixOS/nix/blob/e503ead/src/libstore/globals.hh#L673-L687
|
|
supportedFeatures = [
|
|
"benchmark"
|
|
"big-parallel"
|
|
"kvm"
|
|
];
|
|
in
|
|
[
|
|
# Nix seems always try to build on the machine remotely
|
|
# to make use of the local machine's high-performance CPU, do not set remote builder's maxJobs too high.
|
|
# {
|
|
# # some of my remote builders are running NixOS
|
|
# # and has the same sshUser, sshKey, systems, etc.
|
|
# inherit sshUser sshKey systems supportedFeatures;
|
|
#
|
|
# # the hostName should be:
|
|
# # 1. a hostname that can be resolved by DNS
|
|
# # 2. the ip address of the remote builder
|
|
# # 3. a host alias defined globally in /etc/ssh/ssh_config
|
|
# hostName = "ruby";
|
|
# maxJobs = 2;
|
|
# speedFactor = 1;
|
|
# }
|
|
# {
|
|
# inherit sshUser sshKey systems supportedFeatures;
|
|
# hostName = "kana";
|
|
# maxJobs = 2;
|
|
# speedFactor = 1;
|
|
# }
|
|
];
|
|
# optional, useful when the builder has a faster internet connection than yours
|
|
nix.extraOptions = ''
|
|
builders-use-substitutes = true
|
|
'';
|
|
}
|