Get data needed by getBuildOutput() from the incoming NAR in a streaming fashion

This commit is contained in:
Eelco Dolstra
2020-07-27 20:38:59 +02:00
parent d4e4be4fd1
commit 5b4df3ad5a
9 changed files with 177 additions and 40 deletions

View File

@ -201,9 +201,11 @@ State::StepResult State::doBuildStep(nix::ref<Store> destStore,
};
/* Do the build. */
NarMemberDatas narMembers;
try {
/* FIXME: referring builds may have conflicting timeouts. */
buildRemote(destStore, machine, step, maxSilentTime, buildTimeout, repeats, result, activeStep, updateStep);
buildRemote(destStore, machine, step, maxSilentTime, buildTimeout, repeats, result, activeStep, updateStep, narMembers);
} catch (Error & e) {
if (activeStep->state_.lock()->cancelled) {
printInfo("marking step %d of build %d as cancelled", stepNr, buildId);
@ -218,10 +220,8 @@ State::StepResult State::doBuildStep(nix::ref<Store> destStore,
if (result.stepStatus == bsSuccess) {
updateStep(ssPostProcessing);
res = getBuildOutput(destStore, ref<FSAccessor>(result.accessor), *step->drv);
res = getBuildOutput(destStore, narMembers, *step->drv);
}
result.accessor = 0;
}
time_t stepStopTime = time(0);