summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorseth <[email protected]>2024-07-09 05:31:33 -0400
committerseth <[email protected]>2024-07-09 15:38:51 -0400
commitdcf455b299342c52d17bf73e1046898094a99adf (patch)
tree98edb1a485299be24a25827bedcf02fdae451a68
parent01be52c037e8a457ac51bd37b755295baa7c83c6 (diff)
dev: document hydraJobs and devShells
-rw-r--r--dev/devShells.nix9
-rw-r--r--dev/hydraJobs.nix24
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 // {