summaryrefslogtreecommitdiff
path: root/ci.nix
blob: c2d3ae604f531ca14d0af4cf614d9dd7c2504aad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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}
      '';
    };
  };
}