diff --git a/crates/cuddle-ci/src/drone_templater.rs b/crates/cuddle-ci/src/drone_templater.rs index 4cd99a7..e3bc4a4 100644 --- a/crates/cuddle-ci/src/drone_templater.rs +++ b/crates/cuddle-ci/src/drone_templater.rs @@ -3,9 +3,9 @@ use std::{collections::BTreeMap, path::PathBuf, time::UNIX_EPOCH}; const DRONE_TEMPLATER_IMAGE: &str = "kasperhermansen/drone-templater:main-1711807810"; use async_trait::async_trait; -use eyre::Context; +use eyre::{Context, OptionExt}; -use crate::MainAction; +use crate::{rust_service::RustServiceContext, MainAction}; pub struct DroneTemplater { client: dagger_sdk::Query, @@ -36,7 +36,11 @@ impl DroneTemplater { #[async_trait] impl MainAction for DroneTemplater { - async fn execute_main(&self, _ctx: &mut crate::Context) -> eyre::Result<()> { + async fn execute_main(&self, ctx: &mut crate::Context) -> eyre::Result<()> { + let image_tag = ctx + .get_image_tag()? + .ok_or_eyre(eyre::eyre!("failed to find image tag"))?; + let src = self.client.host().directory(".cuddle/tmp/"); let drone_host = std::env::var("DRONE_HOST").context("DRONE_HOST is missing")?; @@ -59,6 +63,7 @@ impl MainAction for DroneTemplater { .iter() .map(|(name, value)| format!(r#"--variable='{name}={value}'"#)), ) + .chain(vec![format!("--variable='image_tag={}'", image_tag)]) .collect::>(); self.client