{ nixpkgs, pulls, ... }: let pkgs = import nixpkgs { }; prs = builtins.fromJSON (builtins.readFile pulls); prJobsets = pkgs.lib.mapAttrs (num: info: { enabled = 1; hidden = false; description = "PR ${num}: ${info.title}"; checkinterval = 300; schedulingshares = 20; enableemail = false; emailoverride = ""; keepnr = 1; type = 1; flake = "${info.head.repo.html_url}/archive/${info.head.ref}.tar.gz"; inputs = { gitea_repo_name = { type = "string"; value = "${info.head.repo.name}"; emailresponsible = false; }; gitea_repo_owner = { type = "string"; value = "${info.head.repo.owner.username}"; emailresponsible = false; }; gitea_http_url = { type = "string"; value = "https://git.dynamicdiscord.de"; emailresponsible = false; }; gitea_status_repo = { type = "string"; value = "${info.head.ref}"; emailresponsible = false; }; }; }) prs; mkFlakeJobset = branch: { description = "Build ${branch} branch of the repo"; checkinterval = 300; enabled = "1"; schedulingshares = 100; enableemail = false; emailoverride = ""; keepnr = 3; hidden = false; type = 1; flake = "git+https://git.dynamicdiscord.de/kalipso/hydra-notify-test/archive/${branch}.tar.gz"; }; desc = prJobsets // { "master" = mkFlakeJobset "master"; }; log = { pulls = prs; jobsets = desc; }; in { jobsets = pkgs.runCommand "spec-jobsets.json" { } '' cat >$out <<'EOF' ${builtins.toJSON desc} EOF # This is to get nice .jobsets build logs on Hydra cat >tmp <<'EOF' ${builtins.toJSON log} EOF ${pkgs.jq}/bin/jq . tmp ''; }