runHyda automatically starts hydra and postgres:
$ nix-shell -A runHydra
The shell receives hydra from the working copy as buildInput.
Running hydra, queue-runner, evaluator and postgres is managed
by foreman (https://github.com/ddollar/foreman) and configured
in Procfile
.
KPWMZFHZXW5CEWXXTB4JDAJLOX42UNGKFULA3FAGQJAPSTSTFNKAC
hydra-server: ./scripts/start-hydra.sh
hydra-queue-runner: ./scripts/start-queue-runner.sh
hydra-evaluator: ./scripts/start-evaluator.sh
postgres: ./scripts/start-postgres.sh
{ foreman, mkShell, hydra, netcat, postgresql95 }:
{ doCheck ? true }:
mkShell {
buildInputs = [
foreman (hydra.overrideAttrs (_: { inherit doCheck; })) netcat postgresql95
];
shellHook = ''
export HYDRA_HOME="src/"
mkdir -p .hydra-data
export HYDRA_DATA="$(pwd)/.hydra-data"
export HYDRA_DBI='dbi:Pg:dbname=hydra;host=localhost;'
exec foreman start
'';
}
#!/bin/sh
# wait for hydra-server to listen
while ! nc -z localhost 3000; do sleep 1; done
exec hydra-evaluator
#!/bin/sh
# wait for postgresql to listen
while ! nc -z localhost 5432; do sleep 1; done
createdb -h $(pwd)/.hydra-data/postgres hydra
hydra-init
hydra-create-user alice --password foobar --role admin
exec hydra-server
#!/bin/sh
initdb ./.hydra-data/postgres
exec postgres -D ./.hydra-data/postgres -k $(pwd)/.hydra-data/postgres
#!/bin/sh
# wait until hydra is listening on port 3000
while ! nc -z localhost 3000; do sleep 1; done
hydra-queue-runner