1. You are writing a composite action and need one of its steps to produce an output value that callers of the composite action can then consume. Which action.yml configuration correctly wires an inner step's output to the composite action's own output?
- A. Define the output in the outer outputs section with a value expression like `${{ steps.step-id.outputs.result }}`, and ensure the inner step sets the output using `echo "result=value" >> $GITHUB_OUTPUT`.✓ Correct
- B. Composite actions cannot expose outputs; only JavaScript and Docker actions support the outputs section.
- C. Use `core.setOutput('result', value)` directly inside the composite action's action.yml to propagate the inner step output.
- D. Define the output in outputs and set its value to `${{ env.RESULT }}`, then have the inner step write to $GITHUB_ENV instead of $GITHUB_OUTPUT.
Explanation
In a composite action, outputs must be declared in the top-level outputs section, and each output's value field should reference a specific step's output using the expression `${{ steps.<id>.outputs.<name> }}`. The inner step sets the output by writing to $GITHUB_OUTPUT. Composite actions fully support outputs — the claim they cannot is incorrect. core.setOutput() is a Node.js toolkit function and cannot be called from a composite action's YAML. While writing to $GITHUB_ENV and reading it via `${{ env.RESULT }}` is a workaround, it is not the correct/intended pattern for wiring outputs and can break in certain runner contexts.