forked from github-starred/komodo
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5dee16a100 | ||
|
|
35f3bcdf2f |
34
Cargo.lock
generated
34
Cargo.lock
generated
@@ -804,7 +804,7 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
|
||||
|
||||
[[package]]
|
||||
name = "core"
|
||||
version = "0.3.0"
|
||||
version = "0.3.3"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async_timing_util",
|
||||
@@ -824,7 +824,7 @@ dependencies = [
|
||||
"jwt",
|
||||
"merge_config_files",
|
||||
"monitor_helpers",
|
||||
"monitor_types 0.3.2",
|
||||
"monitor_types 0.3.3",
|
||||
"mungos",
|
||||
"periphery_client",
|
||||
"serde",
|
||||
@@ -1058,10 +1058,10 @@ checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb"
|
||||
|
||||
[[package]]
|
||||
name = "db_client"
|
||||
version = "0.3.2"
|
||||
version = "0.3.3"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"monitor_types 0.3.2",
|
||||
"monitor_types 0.3.3",
|
||||
"mungos",
|
||||
]
|
||||
|
||||
@@ -1934,12 +1934,12 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "monitor_cli"
|
||||
version = "0.3.2"
|
||||
version = "0.3.3"
|
||||
dependencies = [
|
||||
"async_timing_util",
|
||||
"clap",
|
||||
"colored",
|
||||
"monitor_types 0.3.2",
|
||||
"monitor_types 0.3.3",
|
||||
"rand",
|
||||
"run_command",
|
||||
"serde",
|
||||
@@ -1951,12 +1951,12 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "monitor_client"
|
||||
version = "0.3.2"
|
||||
version = "0.3.3"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"envy",
|
||||
"futures-util",
|
||||
"monitor_types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"monitor_types 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"reqwest",
|
||||
"serde",
|
||||
"serde_derive",
|
||||
@@ -1968,11 +1968,11 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "monitor_helpers"
|
||||
version = "0.3.2"
|
||||
version = "0.3.3"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"axum",
|
||||
"monitor_types 0.3.2",
|
||||
"monitor_types 0.3.3",
|
||||
"rand",
|
||||
"serde",
|
||||
"serde_json",
|
||||
@@ -1981,7 +1981,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "monitor_periphery"
|
||||
version = "0.3.2"
|
||||
version = "0.3.3"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"async_timing_util",
|
||||
@@ -1994,7 +1994,7 @@ dependencies = [
|
||||
"futures",
|
||||
"merge_config_files",
|
||||
"monitor_helpers",
|
||||
"monitor_types 0.3.2",
|
||||
"monitor_types 0.3.3",
|
||||
"parse_csl",
|
||||
"run_command",
|
||||
"serde",
|
||||
@@ -2009,7 +2009,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "monitor_types"
|
||||
version = "0.3.2"
|
||||
version = "0.3.3"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"bollard",
|
||||
@@ -2026,9 +2026,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "monitor_types"
|
||||
version = "0.3.2"
|
||||
version = "0.3.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "6b50f6e811dc59b9f19b13b58bee4636f6f1bee2815d9c05f523b530284db75d"
|
||||
checksum = "812da979965797618e2eb338da005a5ec2658d621f17af2cf26d15be3b2ff59e"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"bollard",
|
||||
@@ -2275,11 +2275,11 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
|
||||
|
||||
[[package]]
|
||||
name = "periphery_client"
|
||||
version = "0.3.2"
|
||||
version = "0.3.3"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"futures-util",
|
||||
"monitor_types 0.3.2",
|
||||
"monitor_types 0.3.3",
|
||||
"reqwest",
|
||||
"serde",
|
||||
"serde_json",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "monitor_cli"
|
||||
version = "0.3.2"
|
||||
version = "0.3.3"
|
||||
edition = "2021"
|
||||
authors = ["MoghTech"]
|
||||
description = "monitor cli | tools to setup monitor system"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "core"
|
||||
version = "0.3.0"
|
||||
version = "0.3.3"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
@@ -578,6 +578,9 @@ impl State {
|
||||
|
||||
update.id = self.add_update(update.clone()).await?;
|
||||
|
||||
let stop_signal = stop_signal.unwrap_or(deployment.termination_signal).into();
|
||||
let stop_time = stop_time.unwrap_or(deployment.termination_timeout).into();
|
||||
|
||||
let deploy_log = match self
|
||||
.periphery
|
||||
.deploy(&server, &deployment, stop_signal, stop_time)
|
||||
@@ -716,6 +719,9 @@ impl State {
|
||||
};
|
||||
update.id = self.add_update(update.clone()).await?;
|
||||
|
||||
let stop_signal = stop_signal.unwrap_or(deployment.termination_signal).into();
|
||||
let stop_time = stop_time.unwrap_or(deployment.termination_timeout).into();
|
||||
|
||||
let log = self
|
||||
.periphery
|
||||
.container_stop(&server, &deployment.name, stop_signal, stop_time)
|
||||
@@ -792,6 +798,9 @@ impl State {
|
||||
};
|
||||
update.id = self.add_update(update.clone()).await?;
|
||||
|
||||
let stop_signal = stop_signal.unwrap_or(deployment.termination_signal).into();
|
||||
let stop_time = stop_time.unwrap_or(deployment.termination_timeout).into();
|
||||
|
||||
let log = self
|
||||
.periphery
|
||||
.container_remove(&server, &deployment.name, stop_signal, stop_time)
|
||||
|
||||
@@ -1,4 +1,12 @@
|
||||
import { Component, Match, Setter, Show, Switch, createSignal } from "solid-js";
|
||||
import {
|
||||
Component,
|
||||
Match,
|
||||
Setter,
|
||||
Show,
|
||||
Signal,
|
||||
Switch,
|
||||
createSignal,
|
||||
} from "solid-js";
|
||||
import { client } from "../..";
|
||||
import { useAppState } from "../../state/StateProvider";
|
||||
import { useUser } from "../../state/UserProvider";
|
||||
@@ -13,10 +21,12 @@ import { combineClasses } from "../../util/helpers";
|
||||
import { A, useParams } from "@solidjs/router";
|
||||
import {
|
||||
DockerContainerState,
|
||||
Operation,
|
||||
PermissionLevel,
|
||||
ServerStatus,
|
||||
TerminationSignal,
|
||||
TerminationSignalLabel,
|
||||
UpdateStatus,
|
||||
} from "../../types";
|
||||
import ConfirmMenuButton from "../shared/ConfirmMenuButton";
|
||||
import Selector from "../shared/menu/Selector";
|
||||
@@ -164,18 +174,12 @@ const Build: Component = () => {
|
||||
};
|
||||
|
||||
const Deploy: Component<{ redeploy?: boolean }> = (p) => {
|
||||
// const { deployments } = useAppState();
|
||||
const params = useParams();
|
||||
// const deployment = () => deployments.get(params.id)!;
|
||||
const actions = useActionStates();
|
||||
const { deployments } = useAppState();
|
||||
const deployment = () => deployments.get(params.id);
|
||||
const name = () => deployment()?.deployment.name;
|
||||
const [termSignalLabel, setTermSignalLabel] =
|
||||
createSignal<TerminationSignalLabel>({
|
||||
signal: "default" as TerminationSignal,
|
||||
label: "",
|
||||
});
|
||||
const [termSignalLabel, setTermSignalLabel] = useTermSignalLabel();
|
||||
return (
|
||||
<Show
|
||||
when={!actions.deploying}
|
||||
@@ -235,11 +239,7 @@ const RemoveContainer = () => {
|
||||
const actions = useActionStates();
|
||||
const { deployments } = useAppState();
|
||||
const name = () => deployments.get(params.id)?.deployment.name;
|
||||
const [termSignalLabel, setTermSignalLabel] =
|
||||
createSignal<TerminationSignalLabel>({
|
||||
signal: "default" as TerminationSignal,
|
||||
label: "",
|
||||
});
|
||||
const [termSignalLabel, setTermSignalLabel] = useTermSignalLabel();
|
||||
return (
|
||||
<Show
|
||||
when={!actions.removing}
|
||||
@@ -316,11 +316,7 @@ const Stop = () => {
|
||||
const actions = useActionStates();
|
||||
const { deployments } = useAppState();
|
||||
const name = () => deployments.get(params.id)?.deployment.name;
|
||||
const [termSignalLabel, setTermSignalLabel] =
|
||||
createSignal<TerminationSignalLabel>({
|
||||
signal: "default" as TerminationSignal,
|
||||
label: "",
|
||||
});
|
||||
const [termSignalLabel, setTermSignalLabel] = useTermSignalLabel();
|
||||
return (
|
||||
<Show
|
||||
when={!actions.stopping}
|
||||
@@ -336,9 +332,7 @@ const Stop = () => {
|
||||
class="orange"
|
||||
onConfirm={() => {
|
||||
client.stop_container(params.id, {
|
||||
stop_signal: ((termSignalLabel().signal as any) === "default"
|
||||
? undefined
|
||||
: termSignalLabel().signal) as TerminationSignal,
|
||||
stop_signal: termSignalLabel().signal,
|
||||
});
|
||||
}}
|
||||
title="stop container"
|
||||
@@ -434,7 +428,7 @@ const TermSignalSelector: Component<{
|
||||
<Show
|
||||
when={
|
||||
deployment()?.state === DockerContainerState.Running &&
|
||||
(deployment()?.deployment.term_signal_labels?.length || 0) > 0
|
||||
(deployment()?.deployment.term_signal_labels?.length || 0) > 1
|
||||
}
|
||||
>
|
||||
<Flex
|
||||
@@ -446,10 +440,7 @@ const TermSignalSelector: Component<{
|
||||
<Selector
|
||||
targetClass="blue"
|
||||
selected={p.termSignalLabel}
|
||||
items={[
|
||||
{ signal: "default", label: "" },
|
||||
...(deployment()?.deployment.term_signal_labels || []),
|
||||
]}
|
||||
items={deployment()?.deployment.term_signal_labels || []}
|
||||
itemMap={({ signal, label }) => (
|
||||
<Flex gap="0.5rem" alignItems="center">
|
||||
<div>{signal}</div>
|
||||
@@ -458,9 +449,7 @@ const TermSignalSelector: Component<{
|
||||
</Show>
|
||||
</Flex>
|
||||
)}
|
||||
onSelect={(signal) =>
|
||||
p.setTermSignalLabel(signal as TerminationSignalLabel)
|
||||
}
|
||||
onSelect={(signal) => p.setTermSignalLabel(signal)}
|
||||
position="bottom right"
|
||||
/>
|
||||
</Flex>
|
||||
@@ -468,4 +457,28 @@ const TermSignalSelector: Component<{
|
||||
);
|
||||
};
|
||||
|
||||
function useTermSignalLabel(): Signal<TerminationSignalLabel> {
|
||||
const params = useParams();
|
||||
const { deployments, ws } = useAppState();
|
||||
const deployment = () => deployments.get(params.id)?.deployment;
|
||||
const term_signal = () =>
|
||||
deployment()?.termination_signal || TerminationSignal.SigTerm;
|
||||
const default_term_signal_label = () => ({
|
||||
signal: term_signal(),
|
||||
label:
|
||||
deployment()?.term_signal_labels?.find(
|
||||
({ signal }) => signal === term_signal()
|
||||
)?.label || "",
|
||||
});
|
||||
const [label, setLabel] = createSignal<TerminationSignalLabel>(
|
||||
default_term_signal_label()
|
||||
);
|
||||
ws.subscribe([Operation.UpdateDeployment], (update) => {
|
||||
if (update.status === UpdateStatus.Complete) {
|
||||
setTimeout(() => setLabel(default_term_signal_label()), 100);
|
||||
}
|
||||
});
|
||||
return [label, setLabel];
|
||||
}
|
||||
|
||||
export default Actions;
|
||||
|
||||
@@ -22,7 +22,7 @@ import SimpleTabs from "../../../shared/tabs/SimpleTabs";
|
||||
import ExtraArgs from "./container/ExtraArgs";
|
||||
import WebhookUrl from "./container/WebhookUrl";
|
||||
import RedeployOnBuild from "./container/RedeployOnBuild";
|
||||
import TerminationSignals from "./container/TerminationSignals";
|
||||
import TerminationSignals, { DefaultTerminationSignal, DefaultTerminationTimeout } from "./termination/TerminationSignals";
|
||||
|
||||
const Config: Component<{}> = () => {
|
||||
const { deployment, reset, save, userCanUpdate } = useConfig();
|
||||
@@ -42,7 +42,6 @@ const Config: Component<{}> = () => {
|
||||
<Grid class="config-items scroller" placeItems="start center">
|
||||
<Image />
|
||||
<DockerAccount />
|
||||
<TerminationSignals />
|
||||
<Network />
|
||||
<Restart />
|
||||
<Env />
|
||||
@@ -57,6 +56,19 @@ const Config: Component<{}> = () => {
|
||||
</Grid>
|
||||
),
|
||||
},
|
||||
{
|
||||
title: "termination",
|
||||
element: () => (
|
||||
<Grid class="config-items" placeItems="start center" style={{ "margin-bottom": "" }}>
|
||||
<TerminationSignals />
|
||||
<DefaultTerminationSignal />
|
||||
<DefaultTerminationTimeout />
|
||||
<Show when={isMobile()}>
|
||||
<div style={{ height: "1rem" }} />
|
||||
</Show>
|
||||
</Grid>
|
||||
),
|
||||
},
|
||||
(userCanUpdate() || deployment.repo ? true : false) && {
|
||||
title: "frontend",
|
||||
element: () => (
|
||||
|
||||
@@ -7,6 +7,8 @@ import { TERM_SIGNALS } from "../../../Deployment";
|
||||
import { TerminationSignal } from "../../../../../types";
|
||||
import Input from "../../../../shared/Input";
|
||||
import Menu from "../../../../shared/menu/Menu";
|
||||
import Selector from "../../../../shared/menu/Selector";
|
||||
import { pushNotification } from "../../../../..";
|
||||
|
||||
const TerminationSignals: Component<{}> = (p) => {
|
||||
const { deployment, setDeployment, userCanUpdate } = useConfig();
|
||||
@@ -33,7 +35,7 @@ const TerminationSignals: Component<{}> = (p) => {
|
||||
<Grid class="config-item shadow">
|
||||
<Flex alignItems="center" justifyContent="space-between">
|
||||
<h1>termination signals</h1>
|
||||
<Show when={userCanUpdate()}>
|
||||
<Show when={userCanUpdate() && signals_to_add().length > 0}>
|
||||
<Menu
|
||||
show={menuOpen()}
|
||||
close={() => setMenuOpen(false)}
|
||||
@@ -90,3 +92,65 @@ const TerminationSignals: Component<{}> = (p) => {
|
||||
};
|
||||
|
||||
export default TerminationSignals;
|
||||
|
||||
export const DefaultTerminationSignal: Component<{}> = () => {
|
||||
const { deployment, setDeployment, userCanUpdate } = useConfig();
|
||||
const term_signal = () =>
|
||||
deployment.termination_signal || TerminationSignal.SigTerm;
|
||||
const selected = () => ({
|
||||
signal: term_signal(),
|
||||
label:
|
||||
deployment.term_signal_labels?.find(
|
||||
({ signal }) => signal === term_signal()
|
||||
)?.label || "",
|
||||
});
|
||||
return (
|
||||
<Show when={deployment.term_signal_labels?.length || 0 > 0}>
|
||||
<Flex
|
||||
class="config-item shadow"
|
||||
alignItems="center"
|
||||
justifyContent="space-between"
|
||||
>
|
||||
<h1>default termination signal</h1>
|
||||
<Selector
|
||||
disabled={!userCanUpdate()}
|
||||
targetClass="blue"
|
||||
selected={selected()}
|
||||
items={deployment.term_signal_labels || []}
|
||||
onSelect={({ signal }) => setDeployment("termination_signal", signal)}
|
||||
itemMap={({ signal }) => signal}
|
||||
/>
|
||||
</Flex>
|
||||
</Show>
|
||||
);
|
||||
};
|
||||
|
||||
export const DefaultTerminationTimeout: Component<{}> = () => {
|
||||
const { deployment, setDeployment, userCanUpdate } = useConfig();
|
||||
return (
|
||||
<Flex
|
||||
class="config-item shadow"
|
||||
alignItems="center"
|
||||
justifyContent="space-between"
|
||||
>
|
||||
<h1>termination timeout</h1>
|
||||
<div style={{ position: "relative" }}>
|
||||
<Input
|
||||
disabled={!userCanUpdate()}
|
||||
style={{ width: "10rem" }}
|
||||
placeholder="10"
|
||||
value={deployment.termination_timeout}
|
||||
onConfirm={(value) => {
|
||||
const val = Number(value);
|
||||
if (val) {
|
||||
setDeployment("termination_timeout", val);
|
||||
} else {
|
||||
pushNotification("bad", "timeout must be number");
|
||||
}
|
||||
}}
|
||||
/>
|
||||
<div class="dimmed" style={{ position: "absolute", right: "1rem", top: "50%", transform: "translateY(-50%)" }}>seconds</div>
|
||||
</div>
|
||||
</Flex>
|
||||
);
|
||||
};
|
||||
@@ -106,6 +106,8 @@ export interface Deployment {
|
||||
skip_secret_interp?: boolean;
|
||||
docker_run_args: DockerRunArgs;
|
||||
term_signal_labels?: TerminationSignalLabel[];
|
||||
termination_signal?: TerminationSignal;
|
||||
termination_timeout?: number;
|
||||
build_id?: string;
|
||||
redeploy_on_build?: boolean;
|
||||
build_version?: Version;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "db_client"
|
||||
version = "0.3.2"
|
||||
version = "0.3.3"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "monitor_helpers"
|
||||
version = "0.3.2"
|
||||
version = "0.3.3"
|
||||
edition = "2021"
|
||||
authors = ["MoghTech"]
|
||||
description = "helpers used as dependency for mogh tech monitor"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "monitor_client"
|
||||
version = "0.3.2"
|
||||
version = "0.3.3"
|
||||
edition = "2021"
|
||||
authors = ["MoghTech"]
|
||||
description = "a client to interact with the monitor system"
|
||||
@@ -9,7 +9,7 @@ license = "GPL-3.0-or-later"
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
monitor_types = "0.3.2"
|
||||
monitor_types = "0.3.3"
|
||||
# monitor_types = { path = "../types" }
|
||||
reqwest = { version = "0.11", features = ["json"] }
|
||||
tokio-tungstenite = { version = "0.18", features=["native-tls"] }
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "periphery_client"
|
||||
version = "0.3.2"
|
||||
version = "0.3.3"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "monitor_types"
|
||||
version = "0.3.2"
|
||||
version = "0.3.3"
|
||||
edition = "2021"
|
||||
authors = ["MoghTech"]
|
||||
description = "types for the mogh tech monitor"
|
||||
|
||||
@@ -46,11 +46,21 @@ pub struct Deployment {
|
||||
#[diff(attr(#[serde(skip_serializing_if = "docker_run_args_diff_no_change")]))]
|
||||
pub docker_run_args: DockerRunArgs,
|
||||
|
||||
#[serde(default)]
|
||||
#[builder(default)]
|
||||
#[serde(default = "default_term_signal_labels")]
|
||||
#[builder(default = "vec![TerminationSignalLabel::default()]")]
|
||||
#[diff(attr(#[serde(skip_serializing_if = "vec_diff_no_change")]))]
|
||||
pub term_signal_labels: Vec<TerminationSignalLabel>,
|
||||
|
||||
#[serde(default)]
|
||||
#[builder(default)]
|
||||
#[diff(attr(#[serde(skip_serializing_if = "termination_signal_diff_no_change")]))]
|
||||
pub termination_signal: TerminationSignal,
|
||||
|
||||
#[serde(default = "default_termination_timeout")]
|
||||
#[builder(default = "10")]
|
||||
#[diff(attr(#[serde(skip_serializing_if = "i32_diff_no_change")]))]
|
||||
pub termination_timeout: i32,
|
||||
|
||||
#[builder(default)]
|
||||
#[diff(attr(#[serde(skip_serializing_if = "option_diff_no_change")]))]
|
||||
pub build_id: Option<String>,
|
||||
@@ -99,6 +109,14 @@ pub struct Deployment {
|
||||
pub updated_at: String,
|
||||
}
|
||||
|
||||
fn default_termination_timeout() -> i32 {
|
||||
10
|
||||
}
|
||||
|
||||
fn default_term_signal_labels() -> Vec<TerminationSignalLabel> {
|
||||
vec![TerminationSignalLabel::default()]
|
||||
}
|
||||
|
||||
#[typeshare]
|
||||
#[derive(Serialize, Deserialize, Debug, Clone, Default)]
|
||||
pub struct DeploymentWithContainerState {
|
||||
|
||||
@@ -13,6 +13,10 @@ pub fn f32_diff_no_change(f32_diff: &f32) -> bool {
|
||||
*f32_diff == 0.0
|
||||
}
|
||||
|
||||
pub fn i32_diff_no_change(i32_diff: &i32) -> bool {
|
||||
*i32_diff == 0
|
||||
}
|
||||
|
||||
pub fn option_diff_no_change<T: Diff>(option_diff: &OptionDiff<T>) -> bool
|
||||
where
|
||||
<T as Diff>::Repr: PartialEq,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "monitor_periphery"
|
||||
version = "0.3.2"
|
||||
version = "0.3.3"
|
||||
edition = "2021"
|
||||
authors = ["MoghTech"]
|
||||
description = "monitor periphery binary"
|
||||
|
||||
@@ -17,74 +17,81 @@ use tests::*;
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> anyhow::Result<()> {
|
||||
let monitor = config::load().await;
|
||||
|
||||
println!("\nstarting tests\n");
|
||||
|
||||
let start_ts = unix_timestamp_ms();
|
||||
|
||||
let server = monitor
|
||||
.list_servers(None)
|
||||
.await?
|
||||
.pop()
|
||||
.ok_or(anyhow!("no servers"))?;
|
||||
|
||||
let build = BuildBuilder::default()
|
||||
.name("monitor_core".into())
|
||||
.server_id(server.server.id.clone().into())
|
||||
.repo("mbecker20/monitor".to_string().into())
|
||||
.branch("main".to_string().into())
|
||||
.docker_build_args(
|
||||
DockerBuildArgs {
|
||||
build_path: ".".into(),
|
||||
dockerfile_path: "core/Dockerfile".to_string().into(),
|
||||
..Default::default()
|
||||
}
|
||||
.into(),
|
||||
)
|
||||
.pre_build(
|
||||
Command {
|
||||
path: "frontend".into(),
|
||||
command: "yarn && yarn build".into(),
|
||||
}
|
||||
.into(),
|
||||
)
|
||||
let d = DeploymentBuilder::default()
|
||||
.name(String::from("test"))
|
||||
.server_id(String::from("any"))
|
||||
.build()?;
|
||||
|
||||
let build = monitor.create_full_build(&build).await?;
|
||||
println!("{d:#?}");
|
||||
|
||||
println!("{build:#?}");
|
||||
// let monitor = config::load().await;
|
||||
|
||||
let build_update = monitor.build(&build.id).await?;
|
||||
// println!("\nstarting tests\n");
|
||||
|
||||
println!("{build_update:#?}");
|
||||
// let start_ts = unix_timestamp_ms();
|
||||
|
||||
let deployment = DeploymentBuilder::default()
|
||||
.name("monitor_core_1".into())
|
||||
.server_id(server.server.id.clone())
|
||||
.build_id(build.id.clone().into())
|
||||
.docker_run_args(
|
||||
DockerRunArgsBuilder::default()
|
||||
.volumes(vec![Conversion {
|
||||
local: "/home/max/.monitor/core.config.toml".into(),
|
||||
container: "/config/config.toml".into(),
|
||||
}])
|
||||
.build()?,
|
||||
)
|
||||
.build()?;
|
||||
// let server = monitor
|
||||
// .list_servers(None)
|
||||
// .await?
|
||||
// .pop()
|
||||
// .ok_or(anyhow!("no servers"))?;
|
||||
|
||||
let deployment = monitor.create_full_deployment(&deployment).await?;
|
||||
// let build = BuildBuilder::default()
|
||||
// .name("monitor_core".into())
|
||||
// .server_id(server.server.id.clone().into())
|
||||
// .repo("mbecker20/monitor".to_string().into())
|
||||
// .branch("main".to_string().into())
|
||||
// .docker_build_args(
|
||||
// DockerBuildArgs {
|
||||
// build_path: ".".into(),
|
||||
// dockerfile_path: "core/Dockerfile".to_string().into(),
|
||||
// ..Default::default()
|
||||
// }
|
||||
// .into(),
|
||||
// )
|
||||
// .pre_build(
|
||||
// Command {
|
||||
// path: "frontend".into(),
|
||||
// command: "yarn && yarn build".into(),
|
||||
// }
|
||||
// .into(),
|
||||
// )
|
||||
// .build()?;
|
||||
|
||||
println!("{deployment:#?}");
|
||||
// let build = monitor.create_full_build(&build).await?;
|
||||
|
||||
let deploy_update = monitor.deploy_container(&deployment.id).await?;
|
||||
// println!("{build:#?}");
|
||||
|
||||
println!("{deploy_update:#?}");
|
||||
// let build_update = monitor.build(&build.id).await?;
|
||||
|
||||
let update = test_aws_build(&monitor).await?;
|
||||
// println!("{build_update:#?}");
|
||||
|
||||
let end_ts = unix_timestamp_ms();
|
||||
let finished_in = (end_ts - start_ts) as f64 / 1000.0;
|
||||
println!("\nfinished in {finished_in} s");
|
||||
// let deployment = DeploymentBuilder::default()
|
||||
// .name("monitor_core_1".into())
|
||||
// .server_id(server.server.id.clone())
|
||||
// .build_id(build.id.clone().into())
|
||||
// .docker_run_args(
|
||||
// DockerRunArgsBuilder::default()
|
||||
// .volumes(vec![Conversion {
|
||||
// local: "/home/max/.monitor/core.config.toml".into(),
|
||||
// container: "/config/config.toml".into(),
|
||||
// }])
|
||||
// .build()?,
|
||||
// )
|
||||
// .build()?;
|
||||
|
||||
// let deployment = monitor.create_full_deployment(&deployment).await?;
|
||||
|
||||
// println!("{deployment:#?}");
|
||||
|
||||
// let deploy_update = monitor.deploy_container(&deployment.id).await?;
|
||||
|
||||
// println!("{deploy_update:#?}");
|
||||
|
||||
// let update = test_aws_build(&monitor).await?;
|
||||
|
||||
// let end_ts = unix_timestamp_ms();
|
||||
// let finished_in = (end_ts - start_ts) as f64 / 1000.0;
|
||||
// println!("\nfinished in {finished_in} s");
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user