diff options
| -rw-r--r-- | dev/devShells.nix | 9 | ||||
| -rw-r--r-- | dev/hydraJobs.nix | 24 |
2 files changed, 31 insertions, 2 deletions
diff --git a/dev/devShells.nix b/dev/devShells.nix index 9bed89b..2337f32 100644 --- a/dev/devShells.nix +++ b/dev/devShells.nix @@ -12,6 +12,8 @@ default = pkgs.mkShellNoCC { packages = [ + # we want to make sure we have the same + # nix behavior across machines pkgs.lix # format + lint @@ -25,11 +27,14 @@ pkgs.deploy-rs pkgs.fzf pkgs.just + + # terranix self'.packages.opentofu ] - ++ lib.optional pkgs.stdenv.isDarwin [ inputs'.nix-darwin.packages.darwin-rebuild ] + # see above comment about {l,n}ix + ++ lib.optional pkgs.stdenv.isDarwin inputs'.nix-darwin.packages.darwin-rebuild ++ lib.optionals pkgs.stdenv.isLinux [ - pkgs.nixos-rebuild + pkgs.nixos-rebuild # ditto inputs'.agenix.packages.agenix ]; }; 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 // { |
