e0b2921ff2
This rewrites the top-level loop of hydra-evaluator in C++. The Perl stuff is moved into hydra-eval-jobset. (Rewriting the entire evaluator would be nice but is a bit too much work.) The new version has some advantages: * It can run multiple jobset evaluations in parallel. * It uses PostgreSQL notifications so it doesn't have to poll the database. So if a jobset is triggered via the web interface or from a GitHub / Bitbucket webhook, evaluation of the jobset will start almost instantaneously (assuming the evaluator is not at its concurrency limit). * It imposes a timeout on evaluations. So if e.g. hydra-eval-jobset hangs connecting to a Mercurial server, it will eventually be killed.
45 lines
1.2 KiB
Makefile
45 lines
1.2 KiB
Makefile
TESTS_ENVIRONMENT = \
|
|
BZR_HOME="$(abs_builddir)/data" \
|
|
HYDRA_DBI="dbi:Pg:dbname=hydra-test-suite;port=6433" \
|
|
HYDRA_DATA="$(abs_builddir)/data" \
|
|
HYDRA_HOME="$(top_srcdir)/src" \
|
|
HYDRA_CONFIG= \
|
|
NIX_REMOTE= \
|
|
NIX_REMOTE_SYSTEMS= \
|
|
NIX_CONF_DIR="$(abs_builddir)/nix/etc/nix" \
|
|
NIX_STATE_DIR="$(abs_builddir)/nix/var/nix" \
|
|
NIX_MANIFESTS_DIR="$(abs_builddir)/nix/var/nix/manifests" \
|
|
NIX_STORE_DIR="$(abs_builddir)/nix/store" \
|
|
NIX_LOG_DIR="$(abs_builddir)/nix/var/log/nix" \
|
|
NIX_BUILD_HOOK= \
|
|
PERL5LIB="$(srcdir):$(top_srcdir)/src/lib:$$PERL5LIB" \
|
|
PATH=$(abs_top_srcdir)/src/hydra-evaluator:$(abs_top_srcdir)/src/script:$(abs_top_srcdir)/src/hydra-eval-jobs:$(abs_top_srcdir)/src/hydra-queue-runner:$$PATH \
|
|
perl -w
|
|
|
|
EXTRA_DIST = \
|
|
$(wildcard *.pm) \
|
|
$(wildcard jobs/*.nix) \
|
|
$(wildcard jobs/*.sh) \
|
|
$(TESTS)
|
|
|
|
TESTS = \
|
|
set-up.pl \
|
|
evaluation-tests.pl \
|
|
tear-down.pl
|
|
|
|
check_SCRIPTS = repos
|
|
|
|
db.sqlite: $(top_srcdir)/src/sql/hydra-sqlite.sql
|
|
$(TESTS_ENVIRONMENT) $(top_srcdir)/src/script/hydra-init
|
|
|
|
repos: dirs
|
|
|
|
dirs:
|
|
mkdir -p data
|
|
touch data/hydra.conf
|
|
mkdir -p nix
|
|
mkdir -p nix/etc/nix
|
|
touch nix/etc/nix/nix.conf
|
|
mkdir -p nix/store
|
|
mkdir -p nix/var
|