diff --git a/crates/cuddle-ci/src/rust_service/sqlx.rs b/crates/cuddle-ci/src/rust_service/sqlx.rs index 9bd4e7d..ea9c7d0 100644 --- a/crates/cuddle-ci/src/rust_service/sqlx.rs +++ b/crates/cuddle-ci/src/rust_service/sqlx.rs @@ -5,11 +5,24 @@ use crate::dagger_middleware::DaggerMiddleware; use super::RustService; -pub struct Sqlx {} +pub struct Sqlx { + client: dagger_sdk::Query, +} + +impl Sqlx { + pub fn new(client: dagger_sdk::Query) -> Self { + Self { client } + } +} + #[async_trait] impl DaggerMiddleware for Sqlx { async fn handle(&self, container: Container) -> eyre::Result { - Ok(container.with_env_variable("SQLX_OFFLINE", "true")) + let src = self.client.host().directory(".sqlx/"); + + Ok(container + .with_directory(".sqlx", src) + .with_env_variable("SQLX_OFFLINE", "true")) } } @@ -21,7 +34,9 @@ pub trait SqlxExt { impl SqlxExt for RustService { fn with_sqlx(&mut self) -> &mut Self { - self.with_stage(super::RustServiceStage::BeforeBuild(Box::new(Sqlx {}))); + self.with_stage(super::RustServiceStage::BeforeBuild(Box::new(Sqlx::new( + self.client.clone(), + )))); self }