diff options
| author | seth <[email protected]> | 2024-09-07 12:01:28 -0400 |
|---|---|---|
| committer | seth <[email protected]> | 2024-09-07 12:02:57 -0400 |
| commit | 73b04cd8498fdf23d3c9e65602f1cb9b5d7733be (patch) | |
| tree | cc4136b6a866de66c433c180081faa4128786d73 /dev/hydra-jobs.nix | |
| parent | 8359c81d75b6febac7cfb8ffa22da937f1c5bdd2 (diff) | |
.envrc: watch dev/dev-shells.nix
Diffstat (limited to 'dev/hydra-jobs.nix')
| -rw-r--r-- | dev/hydra-jobs.nix | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/dev/hydra-jobs.nix b/dev/hydra-jobs.nix new file mode 100644 index 0000000..7b55f57 --- /dev/null +++ b/dev/hydra-jobs.nix @@ -0,0 +1,50 @@ +{ + lib, + self, + withSystem, + ... +}: +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 // { + # please add aarch64 runners github...please... + atlas = lib.deepSeq (derivFromCfg self.nixosConfigurations.atlas).drvPath pkgs.emptyFile; + }; + } + ); +} |
