When authoring a reusable workflow, where do you declare the outputs that callers can read after the reusable job finishes?
Select an answer to reveal the explanation.
Short Explanation and Infographic
Reusable workflows expose outputs by defining on.workflow_call.outputs and pointing each output at a job output value. Callers then read jobs.<call_job>.outputs.* after the call.
Full explanation below image
Full Explanation
Reusable workflows declare the external contract under on.workflow_call: inputs, secrets, and outputs. For outputs, you define names at the workflow_call level and map them to job outputs using value: ${{ jobs.some_job.outputs.some_value }}. Job-level outputs still need to be set from steps via $GITHUB_OUTPUT and declared under jobs.<id>.outputs. Simply setting step outputs without the workflow_call.outputs map does not publish them to the caller. branding is only for marketplace actions. permissions.outputs does not exist. On the caller side, the job that uses: the reusable workflow accesses results through the jobs context for that caller job id once the reusable workflow completes.