From 0405273d9330d881ca73b0f232d7bc4a81a1b998 Mon Sep 17 00:00:00 2001 From: seth Date: Fri, 22 Dec 2023 21:16:49 -0500 Subject: actions: use nix-eval-jobs for ci --- ci.nix | 62 ++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 30 insertions(+), 32 deletions(-) (limited to 'ci.nix') diff --git a/ci.nix b/ci.nix index c2d3ae6..94eac3e 100644 --- a/ci.nix +++ b/ci.nix @@ -1,35 +1,33 @@ -{self, ...}: { - perSystem = { - lib, - pkgs, - system, - config, - ... - }: { - packages = let - allConfigurations = [ - "nixosConfigurations" - "darwinConfigurations" - "homeConfigurations" - ]; +{ + lib, + self, + ... +}: { + flake.hydraJobs = let + ciSystems = ["x86_64-linux" "x86_64-darwin"]; + recursiveMerge = builtins.foldl' lib.recursiveUpdate {}; + in + recursiveMerge [ + (let + outputs = lib.getAttrs ["checks" "devShells"] self; + isCompatible = system: _: lib.elem system ciSystems; + in + lib.mapAttrs (_: lib.filterAttrs isCompatible) outputs) - configurations = lib.pipe allConfigurations [ - (configs: lib.getAttrs configs self) - builtins.attrValues - (lib.concatMap builtins.attrValues) - (lib.filter (deriv: deriv.pkgs.system == system)) - (map (deriv: deriv.config.system.build.toplevel or deriv.activationPackage)) - ]; + ( + let + configurations = + lib.getAttrs [ + "nixosConfigurations" + "darwinConfigurations" + "homeConfigurations" + ] + self; - required = [ - configurations - (builtins.attrValues config.checks) - (builtins.attrValues config.devShells) - ]; - in { - ciGate = pkgs.writeText "ci-gate" '' - ${lib.concatMapStringsSep "\n" toString required} - ''; - }; - }; + isCompatible = _: configuration: lib.elem configuration.pkgs.system ciSystems; + toDeriv = _: configuration: configuration.config.system.build.toplevel or configuration.activationPackage; + in + lib.mapAttrs (_: v: lib.mapAttrs toDeriv (lib.filterAttrs isCompatible v)) configurations + ) + ]; } -- cgit v1.2.3