Writing Outputs
Any step with anid: can produce key-value outputs by appending to the
$GITHUB_OUTPUT file:
key=value, one per line.
Reading Outputs
Later steps in the same job can read outputs using expression syntax:${{ steps.<id>.outputs.<key> }} with the corresponding value
before executing the script.
Multiple Outputs
A single step can write multiple outputs:How It Works Internally
- Before each step, Athanor creates a temp file and sets the
GITHUB_OUTPUTenvironment variable to its path - The step script appends
key=valuelines to this file - After the step exits, Athanor reads the file and records the outputs
- Expression patterns in subsequent steps are expanded via string replacement
Only the
$\{{ steps.ID.outputs.KEY }} expression pattern is currently supported.
Full GitHub Actions expression evaluation (env.*, github.*, functions like
contains(), toJSON(), etc.) is not yet implemented.Limitations
- Outputs are scoped to a single job — you cannot reference outputs from a step in a different job
- Multiline values are not supported (only single-line
key=value) $GITHUB_ENVand$GITHUB_PATHare not supported