0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-14 06:00:33 +03:00

nixos/hydra: incorporate upstream changes and update test

During the last update, `hydra-notify` was rewritten as a daemon which
listens to postgresql notifications for each build[1]. The module
uses the `hydra-notify.service` unit from upstream's Hydra module and
the VM test ensures that email notifications are sent properly.

Also updated `hydra-init.service` to install `pg_trgm` on a local
database if needed[2].

[1] c7861b85c4
[2] 8a0a5ec3a3
This commit is contained in:
Maximilian Bosch 2019-09-14 12:58:42 +02:00
parent 7f136b5a56
commit ce37a040c2
No known key found for this signature in database
GPG key ID: 091DBF4D1FC46B8E
3 changed files with 34 additions and 5 deletions

View file

@ -44,6 +44,8 @@ cat >data.json <<EOF
"enabled": "1",
"visible": "1",
"keepnr": "1",
"enableemail": true,
"emailoverride": "hydra@localhost",
"nixexprinput": "trivial",
"nixexprpath": "trivial.nix",
"inputs": {

View file

@ -55,7 +55,12 @@ let
notificationSender = "example@example.com";
package = pkgs.hydra.override { inherit nix; };
extraConfig = ''
email_notification = 1
'';
};
services.postfix.enable = true;
nix = {
buildMachines = [{
hostName = "localhost";
@ -70,12 +75,12 @@ let
# let the system boot up
$machine->waitForUnit("multi-user.target");
# test whether the database is running
$machine->succeed("systemctl status postgresql.service");
$machine->waitForUnit("postgresql.service");
# test whether the actual hydra daemons are running
$machine->succeed("systemctl status hydra-queue-runner.service");
$machine->succeed("systemctl status hydra-init.service");
$machine->succeed("systemctl status hydra-evaluator.service");
$machine->succeed("systemctl status hydra-send-stats.service");
$machine->waitForUnit("hydra-init.service");
$machine->requireActiveUnit("hydra-queue-runner.service");
$machine->requireActiveUnit("hydra-evaluator.service");
$machine->requireActiveUnit("hydra-notify.service");
$machine->succeed("hydra-create-user admin --role admin --password admin");
@ -86,6 +91,8 @@ let
$machine->succeed("create-trivial-project.sh");
$machine->waitUntilSucceeds('curl -L -s http://localhost:3000/build/1 -H "Accept: application/json" | jq .buildstatus | xargs test 0 -eq');
$machine->waitUntilSucceeds('journalctl -eu hydra-notify.service -o cat | grep -q "sending mail notification to hydra@localhost"');
'';
})));