diff --git a/hydra/jobsets.nix b/hydra/jobsets.nix index 013d97f..c94126b 100644 --- a/hydra/jobsets.nix +++ b/hydra/jobsets.nix @@ -7,39 +7,42 @@ systems = ["x86_64-linux" "aarch64-linux" "riscv64-linux"]; nixpkgs_version = ["master" "nixos-22.05"]; mkJobsets = system: version: - (pkgs.lib.mapAttrs ( + (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; + name = "${system}-${version}-pr${num}"; + value = { + 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 = { + "${system}-${version}" = { enabled = 1; hidden = false; description = "nix-packages ${system}-${version}"; @@ -69,17 +72,7 @@ }; }; - mapToAttrs = f: list: pkgs.lib.listToAttrs (map f list); + concatAttrs = pkgs.lib.foldr (a: b: a // b) {}; - jobsets = - mapToAttrs (system: { - name = system; - value = - mapToAttrs (version: { - name = version; - value = mkJobsets system version; - }) - nixpkgs_version; - }) - systems; + jobsets = concatAttrs (pkgs.lib.concatMap (system: map (version: mkJobsets system version) nixpkgs_version) systems); in {jobsets = pkgs.writeText "jobsets.json" (builtins.toJSON jobsets);}