diff options
Diffstat (limited to 'ci.nix')
| -rw-r--r-- | ci.nix | 35 |
1 files changed, 35 insertions, 0 deletions
@@ -0,0 +1,35 @@ +{self, ...}: { + perSystem = { + lib, + pkgs, + system, + config, + ... + }: { + packages = let + allConfigurations = [ + "nixosConfigurations" + "darwinConfigurations" + "homeConfigurations" + ]; + + 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)) + ]; + + required = [ + configurations + (builtins.attrValues config.checks) + (builtins.attrValues config.devShells) + ]; + in { + ciGate = pkgs.writeText "ci-gate" '' + ${lib.concatMapStringsSep "\n" toString required} + ''; + }; + }; +} |
