Skip to main content

Module expand

Module expand 

Source
Expand description

Expand a parsed PipelineConfig into a flat list of ExpandedNodes ready for the executor to run.

Responsibilities:

  • Assign synthetic ids to anonymous rows (row-0, row-1, …).
  • Reject reserved row ids (env, file, secret, matrix, pipeline).
  • Reject duplicate ids.
  • Validate that every parent: references a known row id and that the parent chain has no cycles.
  • Deep-merge each row’s partial overrides into pipeline.*.
  • Find every ${id.path} token surviving from load-time interpolation and record where each one came from. Tokens that reference unknown ids produce a CliError::UnknownInterpolationId here, not at runtime.

Structs§

DeferredRef
ExpandedNode
One fully-merged matrix row, ready for the executor.

Enums§

NodeRole

Constants§

RESERVED_IDS
Row ids that callers can never use because they collide with load-time interpolation prefixes or future runtime scopes.

Functions§

expand
Expand cfg into a topologically valid list of nodes. Roots come first, then children in BFS order.