summaryrefslogtreecommitdiff
path: root/repo/ci.nix
blob: e33c088a3c312c6dc4b97c82f584b3487bf8ab67 (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
{
  lib,
  self,
  ...
}: {
  flake.hydraJobs = let
    ciSystems = ["x86_64-linux"];

    getOutputs = lib.getAttrs ciSystems;

    mapCfgsToDerivs = lib.mapAttrs (_: cfg: cfg.activationPackage or cfg.config.system.build.toplevel);
    getCompatibleCfgs = lib.filterAttrs (_: cfg: lib.elem cfg.pkgs.system ciSystems);
  in
    builtins.foldl' lib.recursiveUpdate {} [
      (
        lib.genAttrs
        ["nixosConfigurations" "homeConfigurations"]
        (
          type: mapCfgsToDerivs (getCompatibleCfgs self."${type}")
        )
      )
      (
        lib.genAttrs
        ["checks" "devShells"]
        (type: getOutputs self.${type})
      )
    ];
}