select build version for monitor build

This commit is contained in:
mbecker20
2023-01-08 06:11:34 +00:00
parent 2e5f2d11b4
commit e18cd2eebb
15 changed files with 324 additions and 59 deletions

View File

@@ -1,5 +1,5 @@
use anyhow::Context;
use monitor_types::{Build, BuildActionState, Update};
use monitor_types::{Build, BuildActionState, BuildVersionsReponse, Update};
use serde_json::{json, Value};
use crate::MonitorClient;
@@ -24,6 +24,21 @@ impl MonitorClient {
.await
}
pub async fn get_build_versions(
&self,
build_id: &str,
page: u32,
major: impl Into<Option<u32>>,
minor: impl Into<Option<u32>>,
patch: impl Into<Option<u32>>,
) -> anyhow::Result<BuildVersionsReponse> {
self.get(
&format!("/api/build/{build_id}/versions"),
json!({ "page": page, "major": major.into(), "minor": minor.into(), "patch": patch.into() }),
)
.await
}
pub async fn create_build(&self, name: &str, server_id: &str) -> anyhow::Result<Build> {
self.post(
"/api/build/create",

View File

@@ -50,19 +50,16 @@ pub struct Build {
pub on_clone: Option<Command>,
// build related
#[serde(skip_serializing_if = "Option::is_none")]
#[diff(attr(#[serde(skip_serializing_if = "option_diff_no_change")]))]
pub pre_build: Option<Command>,
#[serde(skip_serializing_if = "Option::is_none")]
#[diff(attr(#[serde(skip_serializing_if = "option_diff_no_change")]))]
pub docker_build_args: Option<DockerBuildArgs>,
#[serde(skip_serializing_if = "Option::is_none")]
#[diff(attr(#[serde(skip_serializing_if = "option_diff_no_change")]))]
pub docker_account: Option<String>,
#[serde(default, skip_serializing_if = "String::is_empty")]
#[serde(default)]
#[diff(attr(#[serde(skip)]))]
#[builder(setter(skip))]
pub last_built_at: String,
@@ -115,3 +112,10 @@ pub struct DockerBuildArgs {
#[serde(default)]
pub build_args: Vec<EnvironmentVar>,
}
#[typeshare]
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
pub struct BuildVersionsReponse {
pub version: Version,
pub ts: String,
}

View File

@@ -35,36 +35,28 @@ pub struct Deployment {
#[diff(attr(#[serde(skip_serializing_if = "docker_run_args_diff_no_change")]))]
pub docker_run_args: DockerRunArgs,
#[serde(skip_serializing_if = "Option::is_none")]
#[diff(attr(#[serde(skip_serializing_if = "option_diff_no_change")]))]
pub build_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[diff(attr(#[serde(skip_serializing_if = "option_diff_no_change")]))]
pub build_version: Option<Version>,
// deployment repo related
#[serde(skip_serializing_if = "Option::is_none")]
#[diff(attr(#[serde(skip_serializing_if = "option_diff_no_change")]))]
pub repo: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[diff(attr(#[serde(skip_serializing_if = "option_diff_no_change")]))]
pub branch: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[diff(attr(#[serde(skip_serializing_if = "option_diff_no_change")]))]
pub github_account: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[diff(attr(#[serde(skip_serializing_if = "option_diff_no_change")]))]
pub on_clone: Option<Command>,
#[serde(skip_serializing_if = "Option::is_none")]
#[diff(attr(#[serde(skip_serializing_if = "option_diff_no_change")]))]
pub on_pull: Option<Command>,
#[serde(skip_serializing_if = "Option::is_none")]
#[diff(attr(#[serde(skip_serializing_if = "option_diff_no_change")]))]
pub repo_mount: Option<Conversion>,

View File

@@ -57,11 +57,9 @@ pub struct Server {
#[diff(attr(#[serde(skip_serializing_if = "timelength_diff_no_change")]))]
pub stats_interval: Timelength,
#[serde(skip_serializing_if = "Option::is_none")]
#[diff(attr(#[serde(skip_serializing_if = "option_diff_no_change")]))]
pub region: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
#[diff(attr(#[serde(skip_serializing_if = "option_diff_no_change")]))]
pub instance_id: Option<String>,