flake: add coding-agent validation workflow

This commit is contained in:
2026-08-06 20:16:17 +09:00
parent 5ebcbb4abf
commit 483d343f48
24 changed files with 1399 additions and 96 deletions
+50 -9
View File
@@ -25,23 +25,63 @@ let
else
{ };
configurations = dotfilesLib.hosts.mkConfigurations hostSpecs;
validationMetadata = {
schemaVersion = 1;
hosts = lib.mapAttrs (
name: spec:
let
isDarwin = lib.hasSuffix "-darwin" spec.system;
in
{
inherit (spec) system user;
kind = if isDarwin then "darwin" else "nixos";
homeManager = spec.homeManager or true;
selectedUnits = dotfilesLib.hosts.selectedUnits spec;
buildAttr =
if isDarwin then
"darwinConfigurations.${name}.system"
else
"nixosConfigurations.${name}.config.system.build.toplevel";
}
) hostSpecs;
units = lib.mapAttrs (
_id: unit: {
inherit (unit) id relativePath;
directory = "modules/${lib.concatStringsSep "/" unit.relativePath}";
includes = unit.meta.includes;
fragments = builtins.attrNames (lib.filterAttrs (_: value: value != null) unit.fragments);
}
) dotfilesLib.registry.units;
};
in
{
flake = {
inherit (configurations) darwinConfigurations nixosConfigurations;
lib = dotfilesLib;
lib = dotfilesLib // { inherit validationMetadata; };
};
perSystem =
{ pkgs, system, ... }:
let
nixosChecks =
lib.mapAttrs' (name: nixos: lib.nameValuePair "nixos-${name}" nixos.config.system.build.toplevel)
(
lib.filterAttrs (
_: nixos: nixos.pkgs.stdenv.hostPlatform.system == system
) configurations.nixosConfigurations
);
nixosChecks = lib.mapAttrs' (
name: nixos:
lib.nameValuePair "nixos-${name}" nixos.config.system.build.toplevel
) (
lib.filterAttrs (
name: _: hostSpecs.${name}.system == system
) configurations.nixosConfigurations
);
darwinChecks = lib.mapAttrs' (
name: darwin:
lib.nameValuePair "darwin-${name}" darwin.system
) (
lib.filterAttrs (
name: _: hostSpecs.${name}.system == system
) configurations.darwinConfigurations
);
in
{
checks = {
@@ -49,6 +89,7 @@ in
inherit inputs lib pkgs;
};
}
// nixosChecks;
// nixosChecks
// darwinChecks;
};
}