From a85f9cacde40e02a4847e63984c87ac365018ead Mon Sep 17 00:00:00 2001 From: ahtlon Date: Wed, 11 Mar 2026 21:19:24 +0100 Subject: [PATCH] Add hydra files --- .hydra/declaritive-jobsets.nix | 53 ++++++++++++++++++++++++++++++++++ .hydra/spec.json | 30 +++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 .hydra/declaritive-jobsets.nix create mode 100644 .hydra/spec.json diff --git a/.hydra/declaritive-jobsets.nix b/.hydra/declaritive-jobsets.nix new file mode 100644 index 00000000..df246815 --- /dev/null +++ b/.hydra/declaritive-jobsets.nix @@ -0,0 +1,53 @@ +{ 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 = "gitea:git.dynamicdiscord.de/ahtlon/infrastructure/pulls/${num}"; + }) prs; + mkFlakeJobset = branch: { + description = "Build ${branch} branch of Simple NixOS MailServer"; + checkinterval = 300; + enabled = "1"; + schedulingshares = 100; + enableemail = false; + emailoverride = ""; + keepnr = 3; + hidden = false; + type = 1; + flake = "git:simple-nixos-mailserver/nixos-mailserver/${branch}"; + }; + + 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 + ''; +} diff --git a/.hydra/spec.json b/.hydra/spec.json new file mode 100644 index 00000000..469bb334 --- /dev/null +++ b/.hydra/spec.json @@ -0,0 +1,30 @@ +{ + "enabled": 1, + "hidden": false, + "description": "Simple NixOS Mailserver", + "nixexprinput": "nixexpr", + "nixexprpath": ".hydra/declarative-jobsets.nix", + "checkinterval": 60, + "schedulingshares": 100, + "enableemail": false, + "emailoverride": "", + "keepnr": 3, + "type": 0, + "inputs": { + "nixexpr": { + "value": "https://git.dynamicdiscord.de/ahtlon/infrastructure master", + "type": "git", + "emailresponsible": false + }, + "nixpkgs": { + "value": "https://github.com/NixOS/nixpkgs nixos-25.11", + "type": "git", + "emailresponsible": false + }, + "pulls": { + "type": "path", + "value": "http://127.0.0.1:27364/gitea-pulls-sorted.json", + "emailresponsible": false + } + } +}