Signed-off-by: kjuulh <contact@kjuulh.io>
This commit is contained in:
parent
2d255c21e6
commit
f94677d78f
@ -35,7 +35,14 @@ pub enum Commands {
|
|||||||
#[command(subcommand)]
|
#[command(subcommand)]
|
||||||
command: LocalCommands,
|
command: LocalCommands,
|
||||||
},
|
},
|
||||||
PullRequest,
|
PullRequest {
|
||||||
|
#[arg(long)]
|
||||||
|
image: String,
|
||||||
|
#[arg(long)]
|
||||||
|
tag: String,
|
||||||
|
#[arg(long)]
|
||||||
|
bin_name: String,
|
||||||
|
},
|
||||||
Main {
|
Main {
|
||||||
#[arg(long)]
|
#[arg(long)]
|
||||||
image: String,
|
image: String,
|
||||||
@ -163,7 +170,48 @@ async fn main() -> eyre::Result<()> {
|
|||||||
.await?;
|
.await?;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
Commands::PullRequest => todo!(),
|
Commands::PullRequest {
|
||||||
|
image,
|
||||||
|
tag,
|
||||||
|
bin_name,
|
||||||
|
} => {
|
||||||
|
async fn test(client: Arc<dagger_sdk::Query>, cli: &Command, bin_name: &String) {
|
||||||
|
let args = &cli.global;
|
||||||
|
|
||||||
|
let base_image =
|
||||||
|
base_rust_image(client.clone(), &args, &None, bin_name, &"debug".into())
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
test::execute(client.clone(), &args, base_image)
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
}
|
||||||
|
async fn build(
|
||||||
|
client: Arc<dagger_sdk::Query>,
|
||||||
|
cli: &Command,
|
||||||
|
bin_name: &String,
|
||||||
|
image: &String,
|
||||||
|
tag: &String,
|
||||||
|
) {
|
||||||
|
let args = &cli.global;
|
||||||
|
|
||||||
|
build::build(client.clone(), &args, bin_name, image, tag)
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
async fn cuddle_please(client: Arc<dagger_sdk::Query>, cli: &Command) {
|
||||||
|
run_release_please(client.clone(), &cli.global)
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
tokio::join!(
|
||||||
|
test(client.clone(), &cli, &bin_name),
|
||||||
|
build(client.clone(), &cli, &bin_name, &image, &tag),
|
||||||
|
cuddle_please(client.clone(), &cli)
|
||||||
|
);
|
||||||
|
}
|
||||||
Commands::Main {
|
Commands::Main {
|
||||||
image,
|
image,
|
||||||
tag,
|
tag,
|
||||||
@ -442,6 +490,44 @@ mod build {
|
|||||||
.await?;
|
.await?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
pub async fn build(
|
||||||
|
client: Arc<dagger_sdk::Query>,
|
||||||
|
args: &GlobalArgs,
|
||||||
|
bin_name: &String,
|
||||||
|
image: &String,
|
||||||
|
tag: &String,
|
||||||
|
) -> eyre::Result<()> {
|
||||||
|
// let containers = vec!["linux/amd64", "linux/arm64"];
|
||||||
|
|
||||||
|
let base_image = get_base_debian_image(
|
||||||
|
client.clone(),
|
||||||
|
&args.clone(),
|
||||||
|
Some("linux/amd64".to_string()),
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
|
|
||||||
|
let container = base_rust_image(
|
||||||
|
client.clone(),
|
||||||
|
&args,
|
||||||
|
&Some("linux/amd64".to_string()),
|
||||||
|
&bin_name.clone(),
|
||||||
|
&"release".into(),
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
|
let build_image = execute(
|
||||||
|
client.clone(),
|
||||||
|
&args,
|
||||||
|
&container,
|
||||||
|
&base_image,
|
||||||
|
&bin_name,
|
||||||
|
&Some("linux/amd64".to_string()),
|
||||||
|
)
|
||||||
|
.await?;
|
||||||
|
|
||||||
|
build_image.exit_code().await?;
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
pub async fn execute(
|
pub async fn execute(
|
||||||
_client: Arc<dagger_sdk::Query>,
|
_client: Arc<dagger_sdk::Query>,
|
||||||
_args: &GlobalArgs,
|
_args: &GlobalArgs,
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
Loading…
Reference in New Issue
Block a user