diff options
| author | seth <[email protected]> | 2024-07-09 05:31:33 -0400 |
|---|---|---|
| committer | seth <[email protected]> | 2024-07-09 15:38:51 -0400 |
| commit | dcf455b299342c52d17bf73e1046898094a99adf (patch) | |
| tree | 98edb1a485299be24a25827bedcf02fdae451a68 /dev | |
| parent | 01be52c037e8a457ac51bd37b755295baa7c83c6 (diff) | |
dev: document hydraJobs and devShells
Diffstat (limited to 'dev')
| -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 // { |
