Grammar element · workflow.steps
Workflow steps are nodes, not a sequence
Job nodes, action nodes, and dependent nodes. The edges decide order and parallelism.
workflow.yaml4 steps
What the runner builds
Named nodes grouped by dependency readiness, with independent nodes allowed to run together.
What workflow.steps is
Workflow steps is the list of named nodes in an orchestration graph.
It is not an ordered transformation list. Runtime groups come from depends_on; independent nodes may run in parallel even when written on different lines.
What it contains
- Identity and kind — Unique name plus
joboractiontype. - Work target — A job directory or action name with parameters.
- Control — Dependencies, condition, enabled flag, failure policy, and optional retry.
Edges make the schedule
List order keeps YAML readable. Dependency edges create the executable plan, so review depends_on whenever you need to understand sequencing or parallelism.
Run the complete example
Copy this manifest from the verified documentation project, then run it from the repository root.
workflow:
version: "1.0"
name: docs_workflow
description: Two actions used by the DSL documentation.
trigger: {type: manual}
steps:
- name: prepare
type: action
action: log
params: {message: "Preparation complete."}
retry: {max: 2, delay: 0, backoff: fixed}
- name: publish
type: action
action: log
params: {message: "Publication complete."}
depends_on: [prepare]
when: "1 == 1"
on_failure: fail
hdrctl workflow run examples/tutorial/dsl-elements/workflow.yaml
✓ Step 'prepare' OK (0.0s) ✓ Step 'publish' OK (0.0s) ✅ Workflow 'docs_workflow' completed in 0.0s — 2/2 steps OK
The relevant 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