forked from lix-project/hydra
Add runHydra shell
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`.
This commit is contained in:
parent
a614199449
commit
d1237c315d
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -3,6 +3,7 @@
|
||||||
Makefile
|
Makefile
|
||||||
Makefile.in
|
Makefile.in
|
||||||
.deps
|
.deps
|
||||||
|
.hydra-data
|
||||||
/config.guess
|
/config.guess
|
||||||
/config.log
|
/config.log
|
||||||
/config.status
|
/config.status
|
||||||
|
|
4
Procfile
Normal file
4
Procfile
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
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
|
|
@ -104,13 +104,16 @@
|
||||||
[ makeWrapper autoconf automake libtool unzip nukeReferences pkgconfig libpqxx
|
[ makeWrapper autoconf automake libtool unzip nukeReferences pkgconfig libpqxx
|
||||||
gitAndTools.topGit mercurial darcs subversion bazaar openssl bzip2 libxslt
|
gitAndTools.topGit mercurial darcs subversion bazaar openssl bzip2 libxslt
|
||||||
perlDeps perl final.nix
|
perlDeps perl final.nix
|
||||||
postgresql95 # for running the tests
|
|
||||||
boost
|
boost
|
||||||
(if lib.versionAtLeast lib.version "20.03pre"
|
(if lib.versionAtLeast lib.version "20.03pre"
|
||||||
then nlohmann_json
|
then nlohmann_json
|
||||||
else nlohmann_json.override { multipleHeaders = true; })
|
else nlohmann_json.override { multipleHeaders = true; })
|
||||||
];
|
];
|
||||||
|
|
||||||
|
checkInputs = [
|
||||||
|
postgresql95
|
||||||
|
];
|
||||||
|
|
||||||
hydraPath = lib.makeBinPath (
|
hydraPath = lib.makeBinPath (
|
||||||
[ subversion openssh final.nix coreutils findutils pixz
|
[ subversion openssh final.nix coreutils findutils pixz
|
||||||
gzip bzip2 lzma gnutar unzip git gitAndTools.topGit mercurial darcs gnused bazaar
|
gzip bzip2 lzma gnutar unzip git gitAndTools.topGit mercurial darcs gnused bazaar
|
||||||
|
@ -290,6 +293,8 @@
|
||||||
nixpkgs.overlays = [ self.overlay nix.overlay ];
|
nixpkgs.overlays = [ self.overlay nix.overlay ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
runHydra = pkgs.callPackage ./run-hydra.nix {};
|
||||||
|
|
||||||
nixosModules.hydraTest = {
|
nixosModules.hydraTest = {
|
||||||
imports = [ self.nixosModules.hydra ];
|
imports = [ self.nixosModules.hydra ];
|
||||||
|
|
||||||
|
|
16
run-hydra.nix
Normal file
16
run-hydra.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{ 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
|
||||||
|
'';
|
||||||
|
}
|
6
scripts/start-evaluator.sh
Executable file
6
scripts/start-evaluator.sh
Executable file
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# wait for hydra-server to listen
|
||||||
|
while ! nc -z localhost 3000; do sleep 1; done
|
||||||
|
|
||||||
|
exec hydra-evaluator
|
11
scripts/start-hydra.sh
Executable file
11
scripts/start-hydra.sh
Executable file
|
@ -0,0 +1,11 @@
|
||||||
|
#!/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
|
4
scripts/start-postgres.sh
Executable file
4
scripts/start-postgres.sh
Executable file
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
initdb ./.hydra-data/postgres
|
||||||
|
exec postgres -D ./.hydra-data/postgres -k $(pwd)/.hydra-data/postgres
|
6
scripts/start-queue-runner.sh
Executable file
6
scripts/start-queue-runner.sh
Executable file
|
@ -0,0 +1,6 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# wait until hydra is listening on port 3000
|
||||||
|
while ! nc -z localhost 3000; do sleep 1; done
|
||||||
|
|
||||||
|
hydra-queue-runner
|
Loading…
Reference in a new issue