Signed-off-by: kjuulh <contact@kjuulh.io>
This commit is contained in:
@@ -9,6 +9,7 @@ tokio.workspace = true
|
||||
dagger-sdk = "0.9.8"
|
||||
eyre = { version = "0.6.12" }
|
||||
|
||||
tracing.workspace = true
|
||||
tracing-subscriber.workspace = true
|
||||
|
||||
dagger-components = { git = "https://git.front.kjuulh.io/kjuulh/dagger-components", branch = "main" }
|
||||
|
@@ -1,10 +1,18 @@
|
||||
use std::collections::HashMap;
|
||||
use std::path::PathBuf;
|
||||
|
||||
use async_trait::async_trait;
|
||||
use cuddle_ci::cuddle_file::CuddleFile;
|
||||
use cuddle_ci::cuddle_file::{self, CuddleFile};
|
||||
use cuddle_ci::cuddle_releaser::CuddleReleaser;
|
||||
use cuddle_ci::rust_service::architecture::{Architecture, Os};
|
||||
use cuddle_ci::rust_service::RustService;
|
||||
use cuddle_ci::rust_service::{extensions::*, RustServiceContext};
|
||||
use cuddle_ci::{Context, CuddleCI, MainAction, PullRequestAction};
|
||||
use cuddle_clusters::catalog::cluster_vars::ClusterVars;
|
||||
use cuddle_clusters::catalog::cuddle_vars::CuddleVars;
|
||||
use cuddle_clusters::catalog::vault_secret::VaultSecret;
|
||||
use cuddle_clusters::releaser::Releaser;
|
||||
use cuddle_clusters::IntoComponent;
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> eyre::Result<()> {
|
||||
@@ -25,12 +33,15 @@ async fn main() -> eyre::Result<()> {
|
||||
.with_mold("2.3.3")
|
||||
.to_owned();
|
||||
|
||||
let render = &RustServiceRender::default();
|
||||
let render = &RustServiceRender {
|
||||
service: cuddle_file.vars.service,
|
||||
registry: "http://localhost:7900".into(),
|
||||
};
|
||||
let deployment = &CuddleReleaser::new(client).await?;
|
||||
|
||||
CuddleCI::default()
|
||||
.with_pull_request(service)
|
||||
//.with_pull_request(render.clone())
|
||||
.with_pull_request(render)
|
||||
//.with_pull_request(deployment.clone())
|
||||
.with_main(service)
|
||||
.with_main(render)
|
||||
@@ -42,13 +53,43 @@ async fn main() -> eyre::Result<()> {
|
||||
}
|
||||
|
||||
#[derive(Default, Clone)]
|
||||
struct RustServiceRender {}
|
||||
struct RustServiceRender {
|
||||
service: String,
|
||||
registry: String,
|
||||
}
|
||||
|
||||
impl RustServiceRender {
|
||||
async fn render_templates(&self) -> eyre::Result<()> {
|
||||
cuddle_clusters::process()
|
||||
.await
|
||||
.map_err(|e| eyre::anyhow!("failed to process templates: {}", e.to_string()))?;
|
||||
async fn render_templates(&self, image_tag: &str) -> eyre::Result<()> {
|
||||
let mut releaser = Releaser::default();
|
||||
|
||||
releaser
|
||||
.with_service(&self.service)
|
||||
.with_registry(&self.registry);
|
||||
|
||||
match cuddle_clusters::process_opts(
|
||||
vec![
|
||||
CuddleVars::new(&std::env::current_dir()?)
|
||||
.await
|
||||
.map_err(|e| eyre::anyhow!("failed to get cuddle vars: {}", e.to_string()))?
|
||||
.into_component(),
|
||||
ClusterVars::default().into_component(),
|
||||
VaultSecret::default().into_component(),
|
||||
],
|
||||
cuddle_clusters::process::ProcessOpts {
|
||||
path: std::env::current_dir()?,
|
||||
output: PathBuf::from(".cuddle/tmp/cuddle-clusters"),
|
||||
variables: HashMap::from([("image_tag".into(), image_tag.into())]),
|
||||
},
|
||||
Some(releaser),
|
||||
)
|
||||
.await
|
||||
.map_err(|e| eyre::anyhow!("failed to process templates: {}", e.to_string()))
|
||||
{
|
||||
Ok(_) => {}
|
||||
Err(e) => {
|
||||
tracing::error!("failed to process templates: {}", e);
|
||||
}
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@@ -57,12 +98,12 @@ impl RustServiceRender {
|
||||
#[async_trait]
|
||||
impl MainAction for RustServiceRender {
|
||||
async fn execute_main(&self, ctx: &mut Context) -> eyre::Result<()> {
|
||||
self.render_templates().await?;
|
||||
|
||||
let image_tag = ctx
|
||||
.get_image_tag()?
|
||||
.ok_or(eyre::anyhow!("failed to find image_tag"))?;
|
||||
|
||||
self.render_templates(&image_tag).await?;
|
||||
|
||||
cuddle_ci::cuddle_x::well_known::render(vec![
|
||||
"--cluster",
|
||||
"clank-prod",
|
||||
@@ -78,19 +119,11 @@ impl MainAction for RustServiceRender {
|
||||
#[async_trait]
|
||||
impl PullRequestAction for RustServiceRender {
|
||||
async fn execute_pull_request(&self, ctx: &mut Context) -> eyre::Result<()> {
|
||||
self.render_templates().await?;
|
||||
|
||||
let image_tag = ctx
|
||||
.get_image_tag()?
|
||||
.ok_or(eyre::anyhow!("failed to find image_tag"))?;
|
||||
|
||||
cuddle_ci::cuddle_x::well_known::render(vec![
|
||||
"--cluster",
|
||||
"clank-prod",
|
||||
"--image_tag",
|
||||
&image_tag,
|
||||
])
|
||||
.await?;
|
||||
self.render_templates(&image_tag).await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
Reference in New Issue
Block a user