feat(wfe-yaml): add YAML workflow definitions with shell executor
Concourse-CI-inspired YAML format for defining workflows. Compiles to standard WorkflowDefinition + step factories. Features: - Schema parsing with serde_yaml (YamlWorkflow, YamlStep, StepConfig) - ((var.path)) interpolation from config maps at load time - YAML anchors (&anchor/*alias) fully supported - Validation at load time (no runtime surprises) - Shell executor: runs commands via tokio::process, captures stdout, parses ##wfe[output name=value] annotations for structured outputs - Compiler: sequential wiring, parallel blocks, on_failure/on_success/ ensure hooks, error behavior mapping - Public API: load_workflow(), load_workflow_from_str() - 23 tests (schema, interpolation, compiler, e2e)
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
[workspace]
|
||||
members = ["wfe-core", "wfe-sqlite", "wfe-postgres", "wfe-opensearch", "wfe-valkey", "wfe"]
|
||||
members = ["wfe-core", "wfe-sqlite", "wfe-postgres", "wfe-opensearch", "wfe-valkey", "wfe", "wfe-yaml"]
|
||||
resolver = "2"
|
||||
|
||||
[workspace.package]
|
||||
@@ -41,6 +41,11 @@ wfe-sqlite = { path = "wfe-sqlite" }
|
||||
wfe-postgres = { path = "wfe-postgres" }
|
||||
wfe-opensearch = { path = "wfe-opensearch" }
|
||||
wfe-valkey = { path = "wfe-valkey" }
|
||||
wfe-yaml = { path = "wfe-yaml" }
|
||||
|
||||
# YAML
|
||||
serde_yaml = "0.9"
|
||||
regex = "1"
|
||||
|
||||
# Dev/Test
|
||||
pretty_assertions = "1"
|
||||
|
||||
Reference in New Issue
Block a user