diff --git a/doc/manual/src/configuration.md b/doc/manual/src/configuration.md index ab68df43f..4337425e8 100644 --- a/doc/manual/src/configuration.md +++ b/doc/manual/src/configuration.md @@ -74,6 +74,28 @@ following: } } +Queue Runner configuration +-------------------------- + +These configuration options are understood by the Hydra Queue Runner. + +- `max_unsupported_time` (default `0`) How long to keep unsupported builds in the queue before failing them +- `max_db_connections` (default `128`) Size of the database connection pool +- `max_output_size` (default `2<<30`) Maximum size of a build result output before failing the build (only works for remote builds) +- `max_log_size` (default `64<<20`) Maximum log size for remote builds +- `store_uri` (default empty) If set to a non-empty string, the store is used for the Hydra +- `upload_logs_to_binary_cache` (default `false`) Whether to upload logs of finished builds to the store +- `gc_roots_dir` (default `/nix/var/nix/gcroots/per-user/hydra/hydra-roots`) Directory for Hydra gcroots +- `use-substitutes` (default `false`) Whether or not to try to substitute builds results from the configured substituters before building +- `use_substitutes_on_remote_builders` (default `true`) Whether or not to try to substitute builds inputs from the configured substituters on the build machines when copying build inputs +- `xxx-jobset-repeats` (default empty) Configuration of automated rebuilds for determinism checks. Takes colon-separated values of `project:jobset:repeat` (for example `nixos:trunk-combined:2`) + +Deprecated options +- `store_mode` +- `binary_cache_dir` +- `binary_cache_s3_bucket` +- `binary_cache_secret_key_file` + Statsd Configuration -------------------- diff --git a/src/hydra-queue-runner/build-remote.cc b/src/hydra-queue-runner/build-remote.cc index 21a6c3316..7c9cf317b 100644 --- a/src/hydra-queue-runner/build-remote.cc +++ b/src/hydra-queue-runner/build-remote.cc @@ -307,7 +307,7 @@ void State::buildRemote(ref destStore, destStore->computeFSClosure(inputs, closure); copyPaths(*destStore, *localStore, closure, NoRepair, NoCheckSigs, NoSubstitute); } else { - copyClosureTo(machine->state->sendLock, *destStore, from, to, inputs, true); + copyClosureTo(machine->state->sendLock, *destStore, from, to, inputs, useSubstitutesOnRemoteBuilders); } auto now2 = std::chrono::steady_clock::now(); diff --git a/src/hydra-queue-runner/hydra-queue-runner.cc b/src/hydra-queue-runner/hydra-queue-runner.cc index 723bf2237..7ca9d7e03 100644 --- a/src/hydra-queue-runner/hydra-queue-runner.cc +++ b/src/hydra-queue-runner/hydra-queue-runner.cc @@ -829,6 +829,7 @@ void State::run(BuildID buildOne) _destStore = storeUri == "" ? localStore : openStore(storeUri); useSubstitutes = config->getBoolOption("use-substitutes", false); + useSubstitutesOnRemoteBuilders = config->getBoolOption("use_substitutes_on_remote_builders", true); // FIXME: hacky mechanism for configuring determinism checks. for (auto & s : tokenizeString(config->getStrOption("xxx-jobset-repeats"))) { diff --git a/src/hydra-queue-runner/state.hh b/src/hydra-queue-runner/state.hh index 55c99afc1..f9debb5ec 100644 --- a/src/hydra-queue-runner/state.hh +++ b/src/hydra-queue-runner/state.hh @@ -321,6 +321,7 @@ private: nix::Path hydraData, logDir; bool useSubstitutes = false; + bool useSubstitutesOnRemoteBuilders = false; /* The queued builds. */ typedef std::map Builds;