From ab3ea6d89795f0413b0e7a4b5c65bff989f7f284 Mon Sep 17 00:00:00 2001 From: seth Date: Thu, 28 Dec 2023 23:01:41 -0500 Subject: ci: make hydraJobs a bit neater --- dev/ci.nix | 34 +++++++++++++++++----------------- dev/shell.nix | 1 + 2 files changed, 18 insertions(+), 17 deletions(-) (limited to 'dev') 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 ) ]; } diff --git a/dev/shell.nix b/dev/shell.nix index b187c53..daf9066 100644 --- a/dev/shell.nix +++ b/dev/shell.nix @@ -24,6 +24,7 @@ fzf just jq + nix-eval-jobs opentofu' # see ../terranix/ ] ++ lib.optional stdenv.isLinux inputs'.agenix.packages.agenix; -- cgit v1.2.3