feat(tvix): Thread a log sink through calls to buildDerivation
Similarly to how we did for buildPaths, add a std::ostream& log_sink parameter to the build_derivation method on Store, and pass it std::cerr when called at the top level by nix commands - most notably, the build-remote hook binary, so that we get build logs when using tvix as a remote builder. Change-Id: I0f8f729ba8429d4838a0a135a5c2ac1e1a95d575 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2176 Tested-by: BuildkiteCI Reviewed-by: andi <andi@notmuch.email> Reviewed-by: kanepyork <rikingcoding@gmail.com>
This commit is contained in:
parent
1d22874ab2
commit
49024be056
13 changed files with 31 additions and 18 deletions
5
third_party/nix/src/libstore/rpc-store.cc
vendored
5
third_party/nix/src/libstore/rpc-store.cc
vendored
|
|
@ -374,7 +374,8 @@ absl::Status RpcStore::buildPaths(std::ostream& log_sink, const PathSet& paths,
|
|||
return nix::util::proto::GRPCStatusToAbsl(reader->Finish());
|
||||
}
|
||||
|
||||
BuildResult RpcStore::buildDerivation(const Path& drvPath,
|
||||
BuildResult RpcStore::buildDerivation(std::ostream& log_sink,
|
||||
const Path& drvPath,
|
||||
const BasicDerivation& drv,
|
||||
BuildMode buildMode) {
|
||||
ClientContext ctx;
|
||||
|
|
@ -392,7 +393,7 @@ BuildResult RpcStore::buildDerivation(const Path& drvPath,
|
|||
proto::BuildEvent event;
|
||||
while (reader->Read(&event)) {
|
||||
if (event.has_build_log()) {
|
||||
LOG(INFO) << event.build_log().line();
|
||||
log_sink << event.build_log().line();
|
||||
} else if (event.has_result()) {
|
||||
result = BuildResult::FromProto(event.result());
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue