chore: dynamic hosts, builder targets
buildbot/nix-eval Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux.nixos-exodus Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux.nixos-isaiah Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux.nixos-linode Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux.nixos-zeke Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux.nixos-jeremiah Build done.
buildbot/nix-build gitea:greg/nixos#checks.aarch64-linux.nixos-nixos Build done.
buildbot/nix-build gitea:greg/nixos#checks.x86_64-linux.nixos-gitlab Build done.
buildbot/nix-build Build done.

Make hosts read from directories, to limit manual changes
Rename vm-gitlab -> gitlab
A few reformatting and lint changes due to altered files
Create builder targets for Darwin builders
This commit is contained in:
Greg Hellings
2026-02-17 16:11:29 -06:00
parent 5cd5a3000f
commit e2181f124a
44 changed files with 67 additions and 43 deletions
+13 -19
View File
@@ -1,25 +1,13 @@
{ {
lib,
pkgs, pkgs,
top, top,
... ...
}: }:
let let
darwin-aarch-builder = top.nixunstable.lib.nixosSystem { #darwin-aarch-builder = top.self.nixosConfigurations.builder-aarch;
system = "aarch64-linux"; darwin-x86-builder = top.self.nixosConfigurations.builder-x86;
modules = [ in
"${top.nixunstable}/nixos/modules/profiles/nix-builder-vm.nix" {
{ virtualisation.host.pkgs = import top.nixunstable { system = "aarch64-darwin"; }; }
];
};
darwin-x86-builder = top.nixunstable.lib.nixosSystem {
system = "x86_64-linux";
modules = [
"${top.nixunstable}/nixos/modules/profiles/nix-builder-vm.nix"
{ virtualisation.host.pkgs = import top.nixunstable { system = "aarch64-darwin"; }; }
];
};
in {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
hms hms
]; ];
@@ -41,12 +29,18 @@ in {
nix = { nix = {
enable = true; enable = true;
buildMachines = [{ buildMachines = [
{
hostName = "ssh-ng://builder@localhost"; hostName = "ssh-ng://builder@localhost";
system = "aarch64-linux"; system = "aarch64-linux";
maxJobs = 4; maxJobs = 4;
supportedFeatures = ["kvm" "benchmarch" "big-parallel"]; supportedFeatures = [
}]; "kvm"
"benchmarch"
"big-parallel"
];
}
];
gc.interval.Hour = 3; gc.interval.Hour = 3;
settings.auto-optimise-store = false; # Darwin bugs? settings.auto-optimise-store = false; # Darwin bugs?
}; };
+2
View File
@@ -19,3 +19,5 @@ builds:
- homeConfigurations.exodus - homeConfigurations.exodus
- darwinConfigurations.MacBook-Pro - darwinConfigurations.MacBook-Pro
- darwinConfigurations.MacBook-Prolocal - darwinConfigurations.MacBook-Prolocal
- nixosConfigurations.builder-x86
- nixosConfigurations.builder-aarch
+1 -1
View File
@@ -41,5 +41,5 @@ in
jeremiah = greg "jeremiah"; jeremiah = greg "jeremiah";
linode = greg "linode"; linode = greg "linode";
hosea = greg "hosea"; hosea = greg "hosea";
vm-gitlab = greg "vm-gitlab"; gitlab = greg "gitlab";
} }
+44 -16
View File
@@ -4,7 +4,7 @@
nixpkgs, nixpkgs,
}: }:
let let
vm = args: (unstable (args // { extraMods = [ top.nixos-generators.nixosModules.all-formats ]; })); inherit (top.nixunstable) lib;
wsl = args: (unstable (args // { extraMods = [ top.wsl.nixosModules.wsl ]; })); wsl = args: (unstable (args // { extraMods = [ top.wsl.nixosModules.wsl ]; }));
unstable = unstable =
{ {
@@ -31,25 +31,31 @@ let
# Local ones # Local ones
./baseline.nix ./baseline.nix
top.self.modules.nixosModule top.self.modules.nixosModule
./${name}
] ]
++ extraMods; ++ extraMods;
}; };
in in
{ (lib.genAttrs
genesis = unstable { name = "genesis"; }; (builtins.attrNames (lib.filterAttrs (_: v: v == "directory") (builtins.readDir ./unstable)))
exodus = unstable { name = "exodus"; }; (
zeke = unstable { name = "zeke"; }; name:
icdm-root = unstable { name = "icdm-root"; }; (unstable {
linode = unstable { name = "linode"; }; inherit name;
hosea = unstable { name = "hosea"; }; extraMods = [ ./unstable/${name} ];
jeremiah = unstable { name = "jeremiah"; }; })
isaiah = unstable { name = "isaiah"; }; )
)
vm-gitlab = vm { name = "vm-gitlab"; }; // (lib.genAttrs
proxmoxtemplate = unstable { name = "proxmoxtemplate"; }; (builtins.attrNames (lib.filterAttrs (_: v: v == "directory") (builtins.readDir ./vm)))
(
iso = unstable { name = "iso"; }; name:
(unstable {
inherit name;
extraMods = [ ./vm/${name} ];
})
)
)
// {
# nix build '.#nixosConfigurations.wsl.config.system.build.installer' # nix build '.#nixosConfigurations.wsl.config.system.build.installer'
nixos = wsl { name = "wsl"; }; nixos = wsl { name = "wsl"; };
# nix build '.#nixosConfigurations.wsl-aarch.config.system.build.installer' # nix build '.#nixosConfigurations.wsl-aarch.config.system.build.installer'
@@ -57,4 +63,26 @@ in
# name = "wsl"; # name = "wsl";
# system = "aarch64-linux"; # system = "aarch64-linux";
#}; #};
builder-aarch = lib.nixosSystem {
system = "aarch64-linux";
modules = [
"${top.nixunstable}/nixos/modules/profiles/nix-builder-vm.nix"
{
virtualisation.host.pkgs = import top.nixunstable { system = "aarch64-darwin"; };
boot.loader.grub.devices = [ "/dev/vda" ];
}
];
};
builder-x86 = lib.nixosSystem {
system = "x86_64-linux";
modules = [
"${top.nixunstable}/nixos/modules/profiles/nix-builder-vm.nix"
{
virtualisation.host.pkgs = import top.nixunstable { system = "aarch64-darwin"; };
boot.loader.grub.devices = [ "/dev/vda" ];
}
];
};
} }
View File
@@ -66,7 +66,7 @@ in
}; };
networking = { networking = {
hostName = "vm-gitlab"; # Define your hostname. hostName = "gitlab"; # Define your hostname.
firewall.allowedTCPPorts = [ firewall.allowedTCPPorts = [
80 80
registryPort registryPort
+1 -1
View File
@@ -95,7 +95,7 @@
"external": true, "external": true,
"system": "x86_64-linux" "system": "x86_64-linux"
}, },
"vm-gitlab": { "gitlab": {
"system": "x86_64-linux" "system": "x86_64-linux"
}, },
"wsl": { "wsl": {