Defining and using job outputs
-
Open the workflow file containing the job you want to get outputs from.
-
Use the
jobs.<job_id>.outputs
syntax to define the outputs for the job. For example, the following job defines theoutput1
andoutput2
outputs, which are mapped to the results ofstep1
andstep2
respectively:jobs: job1: runs-on: ubuntu-latest outputs: output1: $ output2: $ steps: - id: step1 run: echo "test=hello" >> "$GITHUB_OUTPUT" - id: step2 run: echo "test=world" >> "$GITHUB_OUTPUT"
-
In a separate job where you want to access those outputs, use the
jobs.<job_id>.needs
syntax to make it dependent on the original job. For example, the following job checks thatjob1
is complete before running:jobs: # Assume job1 is defined as above job2: runs-on: ubuntu-latest needs: job1
-
To access the outputs in the dependent job, use the
needs.<job_id>.outputs.<output_name>
syntax. For example, the following job accesses theoutput1
andoutput2
outputs defined injob1
:jobs: # Assume job1 is defined as above job2: runs-on: ubuntu-latest needs: job1 steps: - env: OUTPUT1: $ OUTPUT2: $ run: echo "$OUTPUT1 $OUTPUT2"
Next steps
To learn more about job outputs and the needs
context, see the following sections of Workflow syntax for GitHub Actions: