pub async fn run_workflow(
workflow: &Workflow,
executor: &dyn Executor,
work_dir: &Path,
changeset_files: &[String],
env: &HashMap<String, String>,
tx: &Sender<StepResult>,
engine: Option<&Arc<Engine>>,
repo_id: Option<Uuid>,
changeset_id: Option<Uuid>,
) -> boolExpand description
Run an entire workflow: stages sequentially, steps within parallel stages concurrently.
Sends StepResults to tx as each step completes. Returns true if all required steps passed.
engine and repo_id are optional — when provided, the semantic step uses the full
Engine-backed analysis. Pass None for both in tests or contexts without an Engine.