feat: use notification service
All checks were successful
continuous-integration/drone/push Build is passing

Signed-off-by: kjuulh <contact@kjuulh.io>
This commit is contained in:
Kasper Juul Hermansen 2024-11-16 15:58:19 +01:00
parent a1985d38d5
commit cf7f6d45be
No known key found for this signature in database

View File

@ -1,5 +1,6 @@
use std::collections::HashMap; use std::collections::HashMap;
use std::path::PathBuf; use std::path::PathBuf;
use std::time::{SystemTime, UNIX_EPOCH};
use async_trait::async_trait; use async_trait::async_trait;
use cuddle_ci::cuddle_file::CuddleFile; use cuddle_ci::cuddle_file::CuddleFile;
@ -37,7 +38,7 @@ async fn main() -> eyre::Result<()> {
.to_owned(); .to_owned();
let render = &RustServiceRender { let render = &RustServiceRender {
service: cuddle_file.vars.service, service: cuddle_file.vars.service.clone(),
//registry: "http://127.0.0.1:7900".into(), //registry: "http://127.0.0.1:7900".into(),
//registry: "http://10.0.11.19:7900".into(), //registry: "http://10.0.11.19:7900".into(),
registry: "https://releaser.i.kjuulh.io:443".into(), registry: "https://releaser.i.kjuulh.io:443".into(),
@ -57,7 +58,69 @@ async fn main() -> eyre::Result<()> {
ci.with_main(&CuddlePlease::new(client.clone())); ci.with_main(&CuddlePlease::new(client.clone()));
} }
ci.execute(std::env::args()).await?; let name = cuddle_file.vars.service.clone();
let system_time = SystemTime::now().duration_since(UNIX_EPOCH)?;
let build_notifications = client
.pipeline("build-notification")
.container()
.from("docker.io/kasperhermansen/build-notifications:main-1731768496")
.with_env_variable("TIME", system_time.as_secs().to_string())
.with_env_variable(
"SERVICE_HOST",
"https://build-notifications.prod.internal.kjuulh.app",
)
.with_env_variable(
"SERVICE_GRPC_HOST",
"https://grpc.build-notifications.prod.internal.kjuulh.app",
);
if let Err(e) = build_notifications
.with_exec(vec![
"build-notifications",
"build-started",
"--project-name",
&name,
])
.sync()
.await
{
tracing::warn!("failed to send start notification: {}", e.to_string())
}
match ci.execute(std::env::args()).await {
Ok(()) => {
if let Err(e) = build_notifications
.with_exec(vec![
"build-notifications",
"build-success",
"--project-name",
&name,
])
.sync()
.await
{
tracing::warn!("failed to send success notification: {}", e.to_string())
}
}
Err(e) => {
if let Err(e) = build_notifications
.with_exec(vec![
"build-notifications",
"build-failure",
"--project-name",
&name,
"--error",
&e.to_string(),
])
.sync()
.await
{
tracing::warn!("failed to send failure notification: {}", e.to_string())
}
return Err(e);
}
}
Ok(()) Ok(())
}) })