diff options
Diffstat (limited to 'dev/hydraJobs.nix')
| -rw-r--r-- | dev/hydraJobs.nix | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/dev/hydraJobs.nix b/dev/hydraJobs.nix index 9cc4617..7b55f57 100644 --- a/dev/hydraJobs.nix +++ b/dev/hydraJobs.nix @@ -5,16 +5,40 @@ ... }: let + # architecture of "main" CI machine ciSystem = "x86_64-linux"; + + /** + Map a NixOS, nix-darwin, or home-manager configuration to a final derivation + + # Type + + ``` + derivFromCfg :: AttrSet -> Attrset + ``` + */ derivFromCfg = deriv: deriv.config.system.build.toplevel or deriv.activationPackage; + + /** + Map an attribute set of NixOS, nix-darwin, or home-manager configurations to their final derivation + + # Type + + ``` + mapCfgsToDerivs :: AttrSet -> Attrset + ``` + */ mapCfgsToDerivs = lib.mapAttrs (lib.const derivFromCfg); in { flake.hydraJobs = withSystem ciSystem ( { pkgs, self', ... }: { + # i don't care to run these for each system, as they should be the same + # and don't need to be cached inherit (self') checks; inherit (self') devShells; + darwinConfigurations = mapCfgsToDerivs self.darwinConfigurations; homeConfigurations = mapCfgsToDerivs self.homeConfigurations; nixosConfigurations = mapCfgsToDerivs self.nixosConfigurations // { |
