Signed-off-by: kjuulh <contact@kjuulh.io>
This commit is contained in:
@@ -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(())
|
||||
|
Reference in New Issue
Block a user