summaryrefslogtreecommitdiff
path: root/dev/ci.nix
diff options
context:
space:
mode:
authorseth <[email protected]>2023-12-28 23:01:41 -0500
committerseth <[email protected]>2023-12-28 23:01:41 -0500
commitab3ea6d89795f0413b0e7a4b5c65bff989f7f284 (patch)
treea0170377a81b34f75a120d7889ab691f1d2d6741 /dev/ci.nix
parent0293681c28ff303b2842ad70e4c4ee7d49db9a6f (diff)
ci: make hydraJobs a bit neater
Diffstat (limited to 'dev/ci.nix')
-rw-r--r--dev/ci.nix34
1 files changed, 17 insertions, 17 deletions
diff --git a/dev/ci.nix b/dev/ci.nix
index 94eac3e..48ca6d1 100644
--- a/dev/ci.nix
+++ b/dev/ci.nix
@@ -5,29 +5,29 @@
}: {
flake.hydraJobs = let
ciSystems = ["x86_64-linux" "x86_64-darwin"];
- recursiveMerge = builtins.foldl' lib.recursiveUpdate {};
+ getOutputs = lib.getAttrs ciSystems;
in
- recursiveMerge [
- (let
- outputs = lib.getAttrs ["checks" "devShells"] self;
- isCompatible = system: _: lib.elem system ciSystems;
- in
- lib.mapAttrs (_: lib.filterAttrs isCompatible) outputs)
+ lib.attrsets.mergeAttrsList [
+ {
+ checks = getOutputs self.checks;
+ devShells = getOutputs self.devShells;
+ homeConfigurations = lib.mapAttrs (_: v:
+ lib.mapAttrs (_: v: v.activationPackage) v.homeConfigurations)
+ (getOutputs self.legacyPackages);
+ }
(
let
- configurations =
- lib.getAttrs [
- "nixosConfigurations"
- "darwinConfigurations"
- "homeConfigurations"
- ]
- self;
+ toDerivs = lib.mapAttrs (_: configuration: configuration.config.system.build.toplevel);
+ toCompatible = lib.filterAttrs (_: configuration: lib.elem configuration.pkgs.system ciSystems);
+ getConfigurationsFor = type: toDerivs (toCompatible self.${type});
- isCompatible = _: configuration: lib.elem configuration.pkgs.system ciSystems;
- toDeriv = _: configuration: configuration.config.system.build.toplevel or configuration.activationPackage;
+ configurations = [
+ "nixosConfigurations"
+ "darwinConfigurations"
+ ];
in
- lib.mapAttrs (_: v: lib.mapAttrs toDeriv (lib.filterAttrs isCompatible v)) configurations
+ lib.genAttrs configurations getConfigurationsFor
)
];
}