diff options
Diffstat (limited to 'repo/ci.nix')
| -rw-r--r-- | repo/ci.nix | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/repo/ci.nix b/repo/ci.nix new file mode 100644 index 0000000..e33c088 --- /dev/null +++ b/repo/ci.nix @@ -0,0 +1,28 @@ +{ + lib, + self, + ... +}: { + flake.hydraJobs = let + ciSystems = ["x86_64-linux"]; + + getOutputs = lib.getAttrs ciSystems; + + mapCfgsToDerivs = lib.mapAttrs (_: cfg: cfg.activationPackage or cfg.config.system.build.toplevel); + getCompatibleCfgs = lib.filterAttrs (_: cfg: lib.elem cfg.pkgs.system ciSystems); + in + builtins.foldl' lib.recursiveUpdate {} [ + ( + lib.genAttrs + ["nixosConfigurations" "homeConfigurations"] + ( + type: mapCfgsToDerivs (getCompatibleCfgs self."${type}") + ) + ) + ( + lib.genAttrs + ["checks" "devShells"] + (type: getOutputs self.${type}) + ) + ]; +} |
