interpolation of the remote store name into activity text is now done in the build hook, so we no longer need to send it back to the daemon. this also reduces the dependency of the daemon on how *exactly* remote builds are done a little bit, and maybe in time we can make these fully opaque. Change-Id: Ie51c4f2cd107350fec4ad0a8ef83621ed86db6a2
42 lines
975 B
Cap'n Proto
42 lines
975 B
Cap'n Proto
@0xfa3817f907240eb2;
|
|
|
|
using Cxx = import "/capnp/c++.capnp";
|
|
$Cxx.namespace("nix::rpc::build_remote");
|
|
$Cxx.allowCancellation;
|
|
|
|
using Types = import "/lix/libutil/types.capnp";
|
|
using StoreTypes = import "/lix/libstore/types.capnp";
|
|
|
|
interface HookInstance {
|
|
interface BuildLogger {
|
|
# will be used later
|
|
}
|
|
|
|
interface AcceptedBuild {
|
|
run @0 (
|
|
inputs :List(StoreTypes.StorePath), # actual a set
|
|
wantedOutputs :List(Data), # actually StringSet
|
|
description :Text, # root activity description for this build
|
|
) -> (result :Types.ResultV);
|
|
}
|
|
|
|
struct BuildResponse {
|
|
union {
|
|
accept :group {
|
|
machine @0 :AcceptedBuild;
|
|
}
|
|
postpone @1 :Void;
|
|
decline @2 :Void;
|
|
declinePermanently @3 :Void;
|
|
}
|
|
}
|
|
|
|
build @0 (
|
|
amWilling :Bool,
|
|
neededSystem :Data,
|
|
drvPath :StoreTypes.StorePath,
|
|
requiredFeatures :List(Data),
|
|
buildLogger :BuildLogger,
|
|
) -> (result :Types.Result(BuildResponse));
|
|
}
|