diff options
author | Florian Klink <flokli@flokli.de> | 2024-01-15T16·43+0200 |
---|---|---|
committer | clbot <clbot@tvl.fyi> | 2024-01-15T18·25+0000 |
commit | 4fb4fc263d31e207f0fc842f17e98ca276094e00 (patch) | |
tree | 08941afd4ff3c8d62768980f94a80a9a1b019ab8 | |
parent | 9fd15ba506c86cd4c1d84aa43d5f3767e02761db (diff) |
feat(tvix/build): add BuildService trait r/7383
Also provide a dummy implementation that just fails on any build that's requested. Change-Id: I0df743a730c5331ec9ce6e97a966abe18ce067f5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10627 Autosubmit: flokli <flokli@flokli.de> Reviewed-by: raitobezarius <tvl@lahfa.xyz> Tested-by: BuildkiteCI
-rw-r--r-- | tvix/Cargo.lock | 1 | ||||
-rw-r--r-- | tvix/Cargo.nix | 4 | ||||
-rw-r--r-- | tvix/build/Cargo.toml | 1 | ||||
-rw-r--r-- | tvix/build/src/buildservice/dummy.rs | 19 | ||||
-rw-r--r-- | tvix/build/src/buildservice/mod.rs | 12 | ||||
-rw-r--r-- | tvix/build/src/lib.rs | 1 |
6 files changed, 38 insertions, 0 deletions
diff --git a/tvix/Cargo.lock b/tvix/Cargo.lock index 4ce2993cb5c6..95cc50a4072b 100644 --- a/tvix/Cargo.lock +++ b/tvix/Cargo.lock @@ -3291,6 +3291,7 @@ dependencies = [ "tonic 0.10.2", "tonic-build", "tonic-reflection", + "tracing", "tvix-castore", ] diff --git a/tvix/Cargo.nix b/tvix/Cargo.nix index d3947281dcd0..a67738397f66 100644 --- a/tvix/Cargo.nix +++ b/tvix/Cargo.nix @@ -10247,6 +10247,10 @@ rec { optional = true; } { + name = "tracing"; + packageId = "tracing"; + } + { name = "tvix-castore"; packageId = "tvix-castore"; } diff --git a/tvix/build/Cargo.toml b/tvix/build/Cargo.toml index 7b1594abc384..2782128db301 100644 --- a/tvix/build/Cargo.toml +++ b/tvix/build/Cargo.toml @@ -10,6 +10,7 @@ prost = "0.12.1" thiserror = "1.0.56" tonic = "0.10.2" tvix-castore = { path = "../castore" } +tracing = "0.1.37" [dependencies.tonic-reflection] optional = true diff --git a/tvix/build/src/buildservice/dummy.rs b/tvix/build/src/buildservice/dummy.rs new file mode 100644 index 000000000000..d20444755e73 --- /dev/null +++ b/tvix/build/src/buildservice/dummy.rs @@ -0,0 +1,19 @@ +use tonic::async_trait; +use tracing::instrument; + +use super::BuildService; +use crate::proto::{Build, BuildRequest}; + +#[derive(Default)] +pub struct DummyBuildService {} + +#[async_trait] +impl BuildService for DummyBuildService { + #[instrument(skip(self), ret, err)] + async fn do_build(&self, _request: BuildRequest) -> std::io::Result<Build> { + Err(std::io::Error::new( + std::io::ErrorKind::Other, + "builds are not supported with DummyBuildService", + )) + } +} diff --git a/tvix/build/src/buildservice/mod.rs b/tvix/build/src/buildservice/mod.rs new file mode 100644 index 000000000000..cd0b7eb5d70f --- /dev/null +++ b/tvix/build/src/buildservice/mod.rs @@ -0,0 +1,12 @@ +use tonic::async_trait; + +use crate::proto::{Build, BuildRequest}; + +mod dummy; +pub use dummy::DummyBuildService; + +#[async_trait] +pub trait BuildService: Send + Sync { + /// TODO: document + async fn do_build(&self, request: BuildRequest) -> std::io::Result<Build>; +} diff --git a/tvix/build/src/lib.rs b/tvix/build/src/lib.rs index febacec69e03..b173657e431c 100644 --- a/tvix/build/src/lib.rs +++ b/tvix/build/src/lib.rs @@ -1 +1,2 @@ +pub mod buildservice; pub mod proto; |