blob: 0dda2c0ed1a49842d9abf67c545ea6bff751fa61 (
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
|
{self, ...}: {
perSystem = {
lib,
pkgs,
system,
config,
...
}: let
# get applicable system configurations
configurations = lib.getAttrs ["darwinConfigurations" "homeConfigurations" "nixosConfigurations"] self;
systems = lib.pipe (builtins.attrValues configurations) [
(builtins.foldl' (acc: attr: acc // attr) {})
(lib.filterAttrs (_: v: v.pkgs.system == system))
(lib.mapAttrsToList (_: v: v.config.system.build.toplevel or v.activationPackage))
];
required = lib.concatLists [
systems
# and other checks
(builtins.attrValues (builtins.removeAttrs config.checks ["ciGate"]))
];
paths =
builtins.foldl' (
acc: deriv:
acc // {${deriv.pname or deriv.name} = deriv.path or deriv.outPath;}
) {}
required;
in {
packages.ciGate = pkgs.linkFarm "ci-gate" paths;
};
}
|