workflow.yaml turns jobs into a graph
Three correct graphs. Walk them, then see how dependencies become an execution plan.
Dependencies form execution groups; independent steps in a group may run together.
What workflow.yaml is
workflow.yaml is an orchestration graph above individual Hydra jobs. Its steps can run job directories or actions, while dependencies determine which nodes must finish first.
It is not another job manifest. A job moves rows from one source to one destination; a workflow coordinates several jobs and side effects as one named run.
What it contains
- Identity and entry —
name, optional description and version, plus a manual, schedule, or webhook trigger. - Work nodes — job steps point to job directories; action steps name an action and its parameters.
- Control edges —
depends_on,when,enabled, failure policy, and retry policy govern scheduling.
Dependencies are the execution plan
List position makes the file readable; depends_on makes the graph. The runner groups every step whose dependencies are complete. One ready step runs alone; several ready steps run in parallel.
Run a complete workflow
The repository carries this two-step workflow:
workflow:
name: "demo_pipeline"
description: "Workflow de démonstration — extraction + log"
trigger:
type: manual
steps:
- name: "extract_csv"
type: job
job: "../../examples/minimal_csv"
depends_on: []
on_failure: fail
- name: "notify"
type: action
action: log
params:
message: "Pipeline terminé avec succès."
depends_on: ["extract_csv"]
on_failure: skip
hdrctl workflow run examples/workflow_demo/workflow.yaml
✓ Step 'extract_csv' OK (3.2s) ✓ Step 'notify' OK (0.0s) ✅ Workflow 'demo_pipeline' completed in 3.2s — 2/2 steps OK
The command syntax, copied from hdrctl workflow run --help:
hdrctl workflow run PATH PATH path to workflow.yaml --lang LANG interface language -h, --help show command help