forked from lix-project/hydra
Merge pull request #874 from regnat/remove-sendDerivation
Remove the `sendDerivation` logic from the builder
This commit is contained in:
commit
e072c1d741
|
@ -210,7 +210,6 @@ void State::buildRemote(ref<Store> destStore,
|
|||
});
|
||||
|
||||
/* Handshake. */
|
||||
bool sendDerivation = true;
|
||||
unsigned int remoteVersion;
|
||||
|
||||
try {
|
||||
|
@ -223,12 +222,6 @@ void State::buildRemote(ref<Store> destStore,
|
|||
remoteVersion = readInt(from);
|
||||
if (GET_PROTOCOL_MAJOR(remoteVersion) != 0x200)
|
||||
throw Error("unsupported ‘nix-store --serve’ protocol version on ‘%1%’", machine->sshName);
|
||||
// Always send the derivation to localhost, since it's a
|
||||
// no-op anyway but we might not be privileged to use
|
||||
// cmdBuildDerivation (e.g. if we're running in a NixOS
|
||||
// container).
|
||||
if (GET_PROTOCOL_MINOR(remoteVersion) >= 1 && !machine->isLocalhost())
|
||||
sendDerivation = false;
|
||||
if (GET_PROTOCOL_MINOR(remoteVersion) < 3 && repeats > 0)
|
||||
throw Error("machine ‘%1%’ does not support repeating a build; please upgrade it to Nix 1.12", machine->sshName);
|
||||
|
||||
|
@ -253,9 +246,6 @@ void State::buildRemote(ref<Store> destStore,
|
|||
StorePathSet inputs;
|
||||
BasicDerivation basicDrv(*step->drv);
|
||||
|
||||
if (sendDerivation)
|
||||
inputs.insert(step->drvPath);
|
||||
else
|
||||
for (auto & p : step->drv->inputSrcs)
|
||||
inputs.insert(p);
|
||||
|
||||
|
@ -313,13 +303,8 @@ void State::buildRemote(ref<Store> destStore,
|
|||
|
||||
updateStep(ssBuilding);
|
||||
|
||||
if (sendDerivation) {
|
||||
to << cmdBuildPaths;
|
||||
worker_proto::write(*localStore, to, StorePathSet{step->drvPath});
|
||||
} else {
|
||||
to << cmdBuildDerivation << localStore->printStorePath(step->drvPath);
|
||||
writeDerivation(to, *localStore, basicDrv);
|
||||
}
|
||||
to << maxSilentTime << buildTimeout;
|
||||
if (GET_PROTOCOL_MINOR(remoteVersion) >= 2)
|
||||
to << maxLogSize;
|
||||
|
@ -337,24 +322,6 @@ void State::buildRemote(ref<Store> destStore,
|
|||
}
|
||||
result.stopTime = time(0);
|
||||
|
||||
if (sendDerivation) {
|
||||
if (res) {
|
||||
result.errorMsg = fmt("%s on ‘%s’", readString(from), machine->sshName);
|
||||
if (res == 100) {
|
||||
result.stepStatus = bsFailed;
|
||||
result.canCache = true;
|
||||
}
|
||||
else if (res == 101) {
|
||||
result.stepStatus = bsTimedOut;
|
||||
}
|
||||
else {
|
||||
result.stepStatus = bsAborted;
|
||||
result.canRetry = true;
|
||||
}
|
||||
return;
|
||||
}
|
||||
result.stepStatus = bsSuccess;
|
||||
} else {
|
||||
result.errorMsg = readString(from);
|
||||
if (GET_PROTOCOL_MINOR(remoteVersion) >= 3) {
|
||||
result.timesBuilt = readInt(from);
|
||||
|
@ -413,7 +380,6 @@ void State::buildRemote(ref<Store> destStore,
|
|||
break;
|
||||
}
|
||||
if (result.stepStatus != bsSuccess) return;
|
||||
}
|
||||
|
||||
result.errorMsg = "";
|
||||
|
||||
|
|
Loading…
Reference in a new issue