This should NOT be backported to 20.09! When 21.03 is released, the DB changes are about a year old and operators had two release cycles for the upgrade. At this point it should be fair to remove the compat layer to reduce the complexity of the module itself.
60 lines
1.7 KiB
Nix
60 lines
1.7 KiB
Nix
{ system ? builtins.currentSystem
|
|
, config ? { }
|
|
, pkgs ? import ../../.. { inherit system config; }
|
|
}:
|
|
|
|
with import ../../lib/testing-python.nix { inherit system pkgs; };
|
|
with pkgs.lib;
|
|
|
|
let
|
|
|
|
inherit (import ./common.nix { inherit system; }) baseConfig;
|
|
|
|
hydraPkgs = {
|
|
inherit (pkgs) hydra-unstable;
|
|
};
|
|
|
|
makeHydraTest = with pkgs.lib; name: package: makeTest {
|
|
name = "hydra-${name}";
|
|
meta = with pkgs.stdenv.lib.maintainers; {
|
|
maintainers = [ pstn lewo ma27 ];
|
|
};
|
|
|
|
machine = { pkgs, lib, ... }: {
|
|
imports = [ baseConfig ];
|
|
services.hydra = { inherit package; };
|
|
};
|
|
|
|
testScript = ''
|
|
# let the system boot up
|
|
machine.wait_for_unit("multi-user.target")
|
|
# test whether the database is running
|
|
machine.wait_for_unit("postgresql.service")
|
|
# test whether the actual hydra daemons are running
|
|
machine.wait_for_unit("hydra-init.service")
|
|
machine.require_unit_state("hydra-queue-runner.service")
|
|
machine.require_unit_state("hydra-evaluator.service")
|
|
machine.require_unit_state("hydra-notify.service")
|
|
|
|
machine.succeed("hydra-create-user admin --role admin --password admin")
|
|
|
|
# create a project with a trivial job
|
|
machine.wait_for_open_port(3000)
|
|
|
|
# make sure the build as been successfully built
|
|
machine.succeed("create-trivial-project.sh")
|
|
|
|
machine.wait_until_succeeds(
|
|
'curl -L -s http://localhost:3000/build/1 -H "Accept: application/json" | jq .buildstatus | xargs test 0 -eq'
|
|
)
|
|
|
|
machine.wait_until_succeeds(
|
|
'journalctl -eu hydra-notify.service -o cat | grep -q "sending mail notification to hydra@localhost"'
|
|
)
|
|
'';
|
|
};
|
|
|
|
in
|
|
|
|
mapAttrs makeHydraTest hydraPkgs
|