feat: with arc
Some checks failed
continuous-integration/drone/push Build is failing

Signed-off-by: kjuulh <contact@kjuulh.io>
This commit is contained in:
2023-11-27 20:11:49 +01:00
parent 999d81bb7a
commit bda242422d
8 changed files with 41 additions and 48 deletions

View File

@@ -1,4 +1,4 @@
use std::path::PathBuf;
use std::{path::PathBuf, sync::Arc};
use async_trait::async_trait;
use dagger_rust::source::RustSource;
@@ -12,6 +12,7 @@ use crate::{
use self::architecture::{Architecture, Os};
#[derive(Clone)]
pub enum RustServiceStage {
BeforeDeps(DynMiddleware),
AfterDeps(DynMiddleware),
@@ -25,6 +26,7 @@ pub enum RustServiceStage {
AfterRelease(DynMiddleware),
}
#[derive(Clone)]
pub struct RustService {
client: dagger_sdk::Query,
base_image: Option<dagger_sdk::Container>,
@@ -141,7 +143,7 @@ impl RustService {
async fn run_stage(
&self,
stages: impl IntoIterator<Item = &Box<dyn DaggerMiddleware + Send + Sync>>,
stages: impl IntoIterator<Item = &Arc<dyn DaggerMiddleware + Send + Sync>>,
container: Container,
) -> eyre::Result<Container> {
let before_deps_stream = stream::iter(stages.into_iter().map(Ok));
@@ -317,29 +319,7 @@ impl MainAction for RustService {
let container = self.build_release().await?;
container
.publish(format!("docker.io/kjuulh/{}", self.bin_name))
.await?;
Ok(())
}
}
#[async_trait]
impl PullRequestAction for &mut RustService {
async fn execute_pull_request(&self) -> eyre::Result<()> {
self.build_test().await?;
Ok(())
}
}
#[async_trait]
impl MainAction for &mut RustService {
async fn execute_main(&self) -> eyre::Result<()> {
let container = self.build_release().await?;
container
.publish(format!("docker.io/kjuulh/{}", self.bin_name))
.publish(format!("docker.io//{}", self.bin_name))
.await?;
Ok(())