2019-11-03 22:38:47 +01:00
|
|
|
{ pkgs ? import <nixpkgs> {} }:
|
|
|
|
with pkgs;
|
|
|
|
|
|
|
|
let
|
2019-11-04 00:14:52 +01:00
|
|
|
registry = stdenv.mkDerivation {
|
|
|
|
name = "dn42-registry";
|
2019-11-03 22:38:47 +01:00
|
|
|
src = <registry>;
|
2019-11-04 00:14:52 +01:00
|
|
|
phases = [ "unpackPhase" "patchPhase" "installPhase" ];
|
|
|
|
nativeBuildInputs = [ python3 ];
|
2019-11-03 22:38:47 +01:00
|
|
|
patchPhase = "patchShebangs utils";
|
2019-11-04 00:14:52 +01:00
|
|
|
installPhase = "cp -ar . $out";
|
|
|
|
};
|
|
|
|
check = name: arg: stdenv.mkDerivation {
|
|
|
|
inherit name;
|
|
|
|
phases = [ "installPhase" "checkPhase" ];
|
2019-11-03 22:38:47 +01:00
|
|
|
installPhase = "touch $out";
|
|
|
|
buildInputs = [ python3 ];
|
|
|
|
doCheck = true;
|
|
|
|
checkPhase = ''
|
2019-11-04 00:14:52 +01:00
|
|
|
cd ${registry}
|
2019-11-03 22:38:47 +01:00
|
|
|
./check-my-stuff ${arg}
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
mntners = builtins.attrNames (
|
|
|
|
lib.filterAttrs (_: t: t == "regular") (
|
|
|
|
builtins.readDir (<registry> + "/data/mntner")
|
|
|
|
)
|
|
|
|
);
|
|
|
|
mntnerJobs = builtins.listToAttrs (
|
|
|
|
map (mntner: rec {
|
|
|
|
name = "mntner-${mntner}";
|
|
|
|
value = lib.hydraJob (check name mntner);
|
|
|
|
}) mntners
|
|
|
|
);
|
|
|
|
in
|
|
|
|
mntnerJobs // {
|
|
|
|
all = lib.hydraJob (check "all" "--all");
|
|
|
|
}
|