Skip to content

Conversation

@sebastianrath
Copy link
Member

This PR introduces the steps context, allowing graphs to reference outputs and conclusions from previously executed nodes using the same ${{ steps.X.outputs.Y }} and ${{ steps.X.conclusion }} syntax borrowed from GitHub Actions expressions.

I added a data struct called HierarchicalMap that chains lookups through parent execution contexts. This means when a workflow spawns child execution states (eg in concurrent for loop), each child can see step results from its ancestors while only storing its own local data. The step cache only tracks primitive outputs under 64KB and records whether each step concluded with success or failure based on which execution port it flows through.

Also, GitHub Actions that dynamically create outputs not defined in their schema, a new ForceSet option allows writing to output ports that don't have formal definitions.

The syntax also works in non github graphs, so the system will probably have to remain compatible unless there is a good reason to break it.

github-advanced-security[bot]

This comment was marked as resolved.

This is now needed since the switch from the Docker CLI to the Docker Go lib (some defaults were turned on by the CLI)
@sebastianrath sebastianrath merged commit 2d884da into main Feb 3, 2026
9 checks passed
@sebastianrath sebastianrath deleted the feature/steps-context branch February 3, 2026 05:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants