forked from github-starred/komodo
add routes to update build at id. build stops if pre_build fails.
This commit is contained in:
@@ -27,6 +27,21 @@ struct CreateBuildBody {
|
||||
|
||||
pub fn router() -> Router {
|
||||
Router::new()
|
||||
.route(
|
||||
"/:id",
|
||||
get(
|
||||
|Extension(state): StateExtension, Extension(user): RequestUserExtension, Path(build_id): Path<BuildId>| async move {
|
||||
let build = state
|
||||
.get_build_check_permissions(
|
||||
&build_id.id,
|
||||
&user,
|
||||
PermissionLevel::Read
|
||||
).await
|
||||
.map_err(handle_anyhow_error)?;
|
||||
response!(Json(build))
|
||||
}
|
||||
)
|
||||
)
|
||||
.route(
|
||||
"/list",
|
||||
get(
|
||||
|
||||
@@ -27,6 +27,21 @@ pub struct CreateDeploymentBody {
|
||||
|
||||
pub fn router() -> Router {
|
||||
Router::new()
|
||||
.route(
|
||||
"/:id",
|
||||
get(
|
||||
|Extension(state): StateExtension, Extension(user): RequestUserExtension, Path(deployment_id): Path<DeploymentId>| async move {
|
||||
let deployment = state
|
||||
.get_deployment_check_permissions(
|
||||
&deployment_id.id,
|
||||
&user,
|
||||
PermissionLevel::Read
|
||||
).await
|
||||
.map_err(handle_anyhow_error)?;
|
||||
response!(Json(deployment))
|
||||
}
|
||||
)
|
||||
)
|
||||
.route(
|
||||
"/list",
|
||||
get(
|
||||
|
||||
@@ -27,6 +27,21 @@ pub struct CreateServerBody {
|
||||
|
||||
pub fn router() -> Router {
|
||||
Router::new()
|
||||
.route(
|
||||
"/:id",
|
||||
get(
|
||||
|Extension(state): StateExtension, Extension(user): RequestUserExtension, Path(server_id): Path<ServerId>| async move {
|
||||
let server = state
|
||||
.get_server_check_permissions(
|
||||
&server_id.id,
|
||||
&user,
|
||||
PermissionLevel::Read
|
||||
).await
|
||||
.map_err(handle_anyhow_error)?;
|
||||
response!(Json(server))
|
||||
}
|
||||
)
|
||||
)
|
||||
.route(
|
||||
"/list",
|
||||
get(
|
||||
|
||||
@@ -46,6 +46,10 @@ pub async fn build(
|
||||
branch,
|
||||
)
|
||||
.await;
|
||||
if !pull_log.success {
|
||||
logs.push(pull_log);
|
||||
return Ok(logs);
|
||||
}
|
||||
logs.push(pull_log);
|
||||
if let Some(command) = pre_build {
|
||||
let mut repo_dir = repo_dir.clone();
|
||||
@@ -55,6 +59,10 @@ pub async fn build(
|
||||
format!("cd {} && {}", repo_dir.display(), command.command),
|
||||
)
|
||||
.await;
|
||||
if !pre_build_log.success {
|
||||
logs.push(pre_build_log);
|
||||
return Ok(logs);
|
||||
}
|
||||
logs.push(pre_build_log);
|
||||
}
|
||||
let build_dir = repo_dir.join(build_path);
|
||||
|
||||
@@ -17,34 +17,12 @@ async fn main() -> anyhow::Result<()> {
|
||||
|
||||
let start_ts = unix_timestamp_ms();
|
||||
|
||||
// let mut builds = monitor.list_builds().await?;
|
||||
// let mut build = builds.pop().unwrap();
|
||||
|
||||
// println!("{build:#?}");
|
||||
|
||||
// build.name = format!("{}_1", build.name);
|
||||
// build.repo = Some("mbecker20/monitor".to_string());
|
||||
// build.branch = Some("next".to_string());
|
||||
|
||||
// let build = monitor.update_build(build).await?;
|
||||
|
||||
// let update = monitor.reclone_build(&build.id).await?;
|
||||
// let (server, deployment, build) = create_test_setup(&monitor, "test").await?;
|
||||
|
||||
// let update = deploy_mongo(&monitor).await?;
|
||||
// println!("{update:#?}");
|
||||
|
||||
// let mut deployments = monitor.list_deployments().await?;
|
||||
// let mut deployment = deployments.pop().unwrap();
|
||||
|
||||
// println!("{deployment:#?}");
|
||||
|
||||
// deployment.name = format!("{}_1", deployment.name);
|
||||
// // deployment.docker_run_args.image = "test_mongo".to_string();
|
||||
|
||||
// let deployment = monitor.update_deployment(deployment).await?;
|
||||
|
||||
// println!("{deployment:#?}");
|
||||
|
||||
let update = deploy_mongo(&monitor).await?;
|
||||
let update = test_build(&monitor).await?;
|
||||
println!("{update:#?}");
|
||||
|
||||
let end_ts = unix_timestamp_ms();
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use anyhow::{anyhow, Context};
|
||||
use monitor_client::{
|
||||
types::{Build, Conversion, Deployment, Server, SystemStats, Update},
|
||||
types::{Build, Command, Conversion, Deployment, DockerBuildArgs, Server, SystemStats, Update},
|
||||
MonitorClient,
|
||||
};
|
||||
|
||||
@@ -55,3 +55,31 @@ pub async fn deploy_mongo(monitor: &MonitorClient) -> anyhow::Result<Update> {
|
||||
let update = monitor.deploy(&deployment.id).await?;
|
||||
Ok(update)
|
||||
}
|
||||
|
||||
pub async fn test_build(monitor: &MonitorClient) -> anyhow::Result<Update> {
|
||||
let servers = monitor
|
||||
.list_servers()
|
||||
.await
|
||||
.context("failed at list servers")?;
|
||||
let server = servers.get(0).ok_or(anyhow!("no servers"))?;
|
||||
println!("got server");
|
||||
let mut build = monitor.create_build("periphery", &server.id).await?;
|
||||
println!("created build");
|
||||
build.repo = Some("mbecker20/monitor".to_string());
|
||||
build.on_clone = Some(Command {
|
||||
path: "/".to_string(),
|
||||
command: "yarn".to_string(),
|
||||
});
|
||||
build.pre_build = Some(Command {
|
||||
path: "periphery".to_string(),
|
||||
command: "yarn build".to_string(),
|
||||
});
|
||||
build.docker_build_args = Some(DockerBuildArgs {
|
||||
build_path: "periphery".to_string(),
|
||||
dockerfile_path: None,
|
||||
});
|
||||
let build = monitor.update_build(build).await?;
|
||||
println!("updated build");
|
||||
let update = monitor.build(&build.id).await?;
|
||||
Ok(update)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user