fluentci_common/
pipeline.rs

1use std::sync::{Arc, Mutex};
2
3use anyhow::Error;
4use fluentci_core::deps::{Graph, GraphCommand};
5use fluentci_ext::runner::Runner;
6use fluentci_types::pipeline::Pipeline;
7use uuid::Uuid;
8
9pub fn pipeline(graph: Arc<Mutex<Graph>>, name: String) -> Result<Pipeline, Error> {
10    let mut graph = graph.lock().unwrap();
11    graph.reset();
12    graph.runner = Arc::new(Box::new(Runner::default()));
13    graph.runner.setup()?;
14
15    let id = Uuid::new_v4().to_string();
16    graph.execute(GraphCommand::AddVertex(
17        id.clone(),
18        name,
19        "".into(),
20        vec![],
21        Arc::new(Box::new(Runner::default())),
22    ))?;
23
24    let pipeline = Pipeline { id };
25    Ok(pipeline)
26}