astro-run 1.0.0

A highly customizable workflow orchestrator
Documentation
use crate::{Id, JobId, StepId, WorkflowId, WorkflowState};
use serde::{Deserialize, Serialize};
use std::collections::HashMap;

pub type Time = chrono::DateTime<chrono::Utc>;

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct StepRunResult {
  pub id: StepId,
  pub state: WorkflowState,
  pub exit_code: Option<i32>,
  pub started_at: Option<Time>,
  pub completed_at: Option<Time>,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct JobRunResult {
  pub id: JobId,
  pub state: WorkflowState,
  pub started_at: Option<Time>,
  pub completed_at: Option<Time>,
  pub steps: Vec<StepRunResult>,
}

#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct WorkflowRunResult {
  pub id: WorkflowId,
  pub state: WorkflowState,
  pub started_at: Option<Time>,
  pub completed_at: Option<Time>,
  pub jobs: HashMap<Id, JobRunResult>,
}