Support testing build determinism

Builds can now specify the attribute "isDeterministic = true" to tell
Hydra to build with build-repeat > 0. If there is a mismatch between
rounds, the step / build fails with a suitable status.

Maybe this should be a meta attribute, but that makes it invisible to
hydra-queue-runner, and it seems reasonable to make a claim of
mandatory determinism part of the derivation (since e.g. enabling this
flag should trigger a rebuild).
This commit is contained in:
Eelco Dolstra
2016-12-06 17:46:06 +01:00
parent d0ad3fd806
commit 8bb36e79bd
6 changed files with 21 additions and 1 deletions

View File

@ -35,6 +35,7 @@ typedef enum {
bsUnsupported = 9,
bsLogLimitExceeded = 10,
bsNarSizeLimitExceeded = 11,
bsNotDeterministic = 12,
bsBusy = 100, // not stored
} BuildStatus;
@ -139,6 +140,7 @@ struct Step
nix::Derivation drv;
std::set<std::string> requiredSystemFeatures;
bool preferLocalBuild;
bool isDeterministic;
std::string systemType; // concatenation of drv.platform and requiredSystemFeatures
struct State