forked from github-starred/komodo
select build version for monitor build
This commit is contained in:
@@ -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",
|
||||
|
||||
@@ -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,
|
||||
}
|
||||
|
||||
@@ -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>,
|
||||
|
||||
|
||||
@@ -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>,
|
||||
|
||||
|
||||
Reference in New Issue
Block a user