Files
Enzime cae89e8e06
buildbot/nix-build gitea:clan/clan-infra#checks.aarch64-darwin.nix-darwin-build04 Build done.
buildbot/nix-eval Build done. (2 warnings)
buildbot/nix-build gitea:clan/clan-infra#checks.x86_64-linux.nixos-build-x86-01 Build done.
buildbot/nix-build gitea:clan/clan-infra#checks.x86_64-linux.nixos-jitsi01 Build done.
buildbot/nix-build gitea:clan/clan-infra#checks.x86_64-linux.nixos-storinator01 Build done.
buildbot/nix-build gitea:clan/clan-infra#checks.x86_64-linux.nixos-web02 Build done.
buildbot/nix-build gitea:clan/clan-infra#checks.aarch64-linux.nixos-build01 Build done.
buildbot/nix-build gitea:clan/clan-infra#checks.x86_64-linux.vars Build done.
buildbot/nix-build gitea:clan/clan-infra#checks.x86_64-linux.nixos-web01 Build done.
buildbot/nix-build gitea:clan/clan-infra#checks.aarch64-darwin.nix-darwin-build02 Build done.
buildbot/nix-build gitea:clan/clan-infra#checks.aarch64-linux.vars Build done.
buildbot/nix-build Build done.
build04: init
2026-02-17 21:06:19 +01:00

72 lines
2.2 KiB
Nix

{ self, config, ... }:
{
imports = [
./secrets.nix
./vars.nix
];
perSystem =
{
system,
self',
pkgs,
lib,
...
}:
{
checks =
let
machinesPerSystem = {
x86_64-linux = [
"build-x86-01"
"jitsi01"
"storinator01"
"web01"
"web02"
];
aarch64-linux = [
"build01"
];
aarch64-darwin = [
"build02"
"build04"
];
};
listedMachines = lib.sort lib.lessThan (lib.concatLists (lib.attrValues machinesPerSystem));
actualMachines = lib.sort lib.lessThan (lib.attrNames config.clan.inventory.machines);
machinesPerSystemCheck = pkgs.runCommand "machines-per-system-check" { } ''
${lib.optionalString (listedMachines != actualMachines) ''
echo "machinesPerSystem out of sync with clan.inventory.machines:"
echo " listed: ${lib.concatStringsSep " " listedMachines}"
echo " actual: ${lib.concatStringsSep " " actualMachines}"
exit 1
''}
touch $out
'';
nixosMachines = lib.optionalAttrs pkgs.stdenv.hostPlatform.isLinux (
lib.mapAttrs' (n: lib.nameValuePair "nixos-${n}") (
lib.genAttrs (machinesPerSystem.${system} or [ ]) (
name: self.nixosConfigurations.${name}.config.system.build.toplevel
)
)
);
darwinMachines = lib.optionalAttrs pkgs.stdenv.hostPlatform.isDarwin (
lib.mapAttrs' (n: lib.nameValuePair "nix-darwin-${n}") (
lib.genAttrs (machinesPerSystem.${system} or [ ]) (
name: self.darwinConfigurations.${name}.config.system.build.toplevel
)
)
);
packages = lib.mapAttrs' (n: lib.nameValuePair "package-${n}") self'.packages;
devShells = lib.mapAttrs' (n: lib.nameValuePair "devShell-${n}") self'.devShells;
in
{
inherit machinesPerSystemCheck;
}
// nixosMachines
// darwinMachines
// packages
// devShells;
};
}