Add jobsets script

This commit is contained in:
Charlotte 🦝 Delenk 2023-01-21 09:41:31 +01:00
parent c7008100d6
commit 7c2c96e276
Signed by: darkkirb
GPG key ID: AB2BD8DAF2E37122
2 changed files with 94 additions and 0 deletions

9
hydra/default.nix Normal file
View file

@ -0,0 +1,9 @@
{
nix-packages,
nixpkgs,
system,
}: let
pkgs = import nixpkgs {inherit system;};
ci = import "${nix-packages}/ci.nix" {inherit pkgs;};
in
ci.buildPkgs

85
hydra/jobsets.nix Normal file
View file

@ -0,0 +1,85 @@
{
prsJSON,
nixpkgs,
}: let
pkgs = import nixpkgs {};
prs = builtins.fromJSON (builtins.readFile prsJSON);
systems = ["x86_64-linux" "aarch64-linux" "riscv64-linux"];
nixpkgs_version = ["master" "nixos-22.05"];
mkJobsets = system: version:
(pkgs.lib.mapAttrs (
num: info: {
enabled = 1;
hidden = false;
description = "PR ${num} (${system}-${version}): ${info.title}";
nixexprinput = "nix-packages";
nixexprpath = "hydra/default.nix";
checkinterval = 60;
schedulingshares = 100;
enableemail = false;
emailoverride = "";
keepnr = 1;
inputs = {
nix-packages = {
type = "git";
value = "https://github.com/${info.head.repo.owner.login}/${info.head.repo.name}.git ${info.head.ref}";
emailresponsible = false;
};
nixpkgs = {
type = "git";
value = "https://github.com/NixOS/nixpkgs.git ${version}";
emailresponsible = false;
};
system = {
type = "string";
value = system;
};
};
}
)
prs)
// {
main = {
enabled = 1;
hidden = false;
description = "nix-packages ${system}-${version}";
nixexprinput = "nix-packages";
nixexprpath = "hydra/default.nix";
checkinterval = 60;
schedulingshares = 100;
enableemail = false;
emailoverride = "";
keepnr = 1;
inputs = {
nix-packages = {
type = "git";
value = "https://github.com/DarkKirb/nix-packages.git main";
emailresponsible = false;
};
nixpkgs = {
type = "git";
value = "https://github.com/NixOS/nixpkgs.git ${version}";
emailresponsible = false;
};
system = {
type = "string";
value = system;
};
};
};
};
mapToAttrs = f: list: pkgs.listToAttrs (map f list);
jobsets =
mapToAttrs (system: {
name = system;
value =
mapToAttrs (version: {
name = version;
value = mkJobsets system version;
})
nixpkgs_version;
})
systems;
in {jobsets = pkgs.writeText "jobsets.json" (builtins.toJSON jobsets);}