shrub_rs/models/
task_group.rs1use serde::{Deserialize, Serialize};
2
3use super::{builtin::TimeoutValue, commands::EvgCommand};
4
5#[derive(Serialize, Deserialize, Debug, Clone)]
7pub struct EvgTaskGroup {
8 pub name: String,
10 pub tasks: Vec<String>,
12
13 #[serde(skip_serializing_if = "Option::is_none")]
16 pub max_hosts: Option<u16>,
17 #[serde(skip_serializing_if = "Option::is_none")]
19 pub share_processes: Option<bool>,
20 #[serde(skip_serializing_if = "Option::is_none")]
22 pub setup_group_can_fail_task: Option<bool>,
23 #[serde(skip_serializing_if = "Option::is_none")]
25 pub setup_group_timeout_secs: Option<TimeoutValue>,
26
27 #[serde(skip_serializing_if = "Option::is_none")]
29 pub setup_group: Option<Vec<EvgCommand>>,
30 #[serde(skip_serializing_if = "Option::is_none")]
32 pub teardown_group: Option<Vec<EvgCommand>>,
33 #[serde(skip_serializing_if = "Option::is_none")]
35 pub setup_task: Option<Vec<EvgCommand>>,
36 #[serde(skip_serializing_if = "Option::is_none")]
38 pub teardown_task: Option<Vec<EvgCommand>>,
39 #[serde(skip_serializing_if = "Option::is_none")]
41 pub timeout: Option<Vec<EvgCommand>>,
42
43 #[serde(skip_serializing_if = "Option::is_none")]
45 pub tags: Option<Vec<String>>,
46}