Reformat everything
All checks were successful
/ test (push) Successful in 32s

This commit is contained in:
Andrea Ciceri 2024-09-20 11:37:17 +02:00
parent 5f644d0ccd
commit a394b9cefd
Signed by: aciceri
SSH key fingerprint: SHA256:/AagBweyV4Hlfg9u092n8hbHwD5fcB6A3qhDiDA65Rg
167 changed files with 2795 additions and 2122 deletions

View file

@ -2,42 +2,45 @@
repoInfoPath,
prs,
...
}: let
}:
let
minutes = 60;
hours = 60 * minutes;
days = 24 * hours;
filterAttrs = pred: set:
builtins.listToAttrs (builtins.concatMap (name: let
v = set.${name};
mapAttrs' = f: set: builtins.listToAttrs (map (attr: f attr set.${attr}) (builtins.attrNames set));
mkJobset =
{
enabled ? 1,
hidden ? false,
type ? 1,
description ? "",
checkinterval ? 5 * minutes,
schedulingshares ? 100,
enableemail ? false,
emailoverride ? "",
keepnr ? 1,
flake,
}:
{
inherit
enabled
hidden
type
description
checkinterval
schedulingshares
enableemail
emailoverride
keepnr
flake
;
};
mkSpec =
contents:
let
escape = builtins.replaceStrings [ ''"'' ] [ ''\"'' ];
contentsJson = builtins.toJSON contents;
in
if pred name v
then [
{
inherit name;
value = v;
}
]
else []) (builtins.attrNames set));
mapAttrs' = f: set:
builtins.listToAttrs (map (attr: f attr set.${attr}) (builtins.attrNames set));
mkJobset = {
enabled ? 1,
hidden ? false,
type ? 1,
description ? "",
checkinterval ? 5 * minutes,
schedulingshares ? 100,
enableemail ? false,
emailoverride ? "",
keepnr ? 1,
flake,
} @ args: {inherit enabled hidden type description checkinterval schedulingshares enableemail emailoverride keepnr flake;};
mkSpec = contents: let
escape = builtins.replaceStrings [''"''] [''\"''];
contentsJson = builtins.toJSON contents;
in
builtins.derivation {
name = "spec.json";
system = "x86_64-linux";
@ -54,20 +57,21 @@
repo = builtins.fromJSON (builtins.readFile repoInfoPath);
pullRequests = builtins.fromJSON (builtins.readFile prs);
pullRequestsToBuild = filterAttrs (n: pr: pr.head.repo != null && pr.head.repo.owner.login == repo.owner && pr.head.repo.name == repo.name) pullRequests;
in {
jobsets = mkSpec ({
in
{
jobsets = mkSpec (
{
master = mkJobset {
description = "${repo.name}'s master branch";
flake = "git+ssh://git@github.com/${repo.owner}/${repo.name}?ref=master";
};
}
// (mapAttrs' (n: pr: {
name = "pullRequest_${n}";
value = mkJobset {
description = pr.title;
flake = "git+ssh://git@github.com/${repo.owner}/${repo.name}?ref=${pr.head.ref}";
};
})
pullRequests));
name = "pullRequest_${n}";
value = mkJobset {
description = pr.title;
flake = "git+ssh://git@github.com/${repo.owner}/${repo.name}?ref=${pr.head.ref}";
};
}) pullRequests)
);
}