1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
use crate::{Command, Condition, ContainerOptions, EnvironmentVariables, StepId};
use serde::{Deserialize, Serialize};
use std::time::Duration;

#[derive(Serialize, Deserialize, Debug, Clone, Default)]
pub struct Step {
  pub id: StepId,
  pub name: Option<String>,
  pub on: Option<Condition>,
  pub container: Option<ContainerOptions>,
  pub run: String,
  pub continue_on_error: bool,
  pub environments: EnvironmentVariables,
  pub secrets: Vec<String>,
  pub timeout: Duration,
}

impl Into<Command> for Step {
  fn into(self) -> Command {
    Command {
      id: self.id,
      name: self.name,
      container: self.container,
      run: self.run,
      continue_on_error: self.continue_on_error,
      environments: self.environments,
      secrets: self.secrets,
      timeout: self.timeout,
    }
  }
}