注: GitHub ホステッド ランナーは、現在 GitHub Enterprise Server でサポートされていません。 GitHub public roadmap で、今後の計画的なサポートの詳細を確認できます。
概要
jobs.<job_id>.outputs
を使って、ジョブの出力の map
を作成できます。 ジョブの出力は、そのジョブに依存しているすべての下流のジョブから利用できます。 ジョブ依存関係の定義の詳細については、「jobs.<job_id>.needs
」を参照してください。
出力は Unicode 文字列であり、最大 1 MB となります。 ワークフロー実行内のすべての出力の合計は、最大 50 MB です。
表現が含まれているジョブの出力は、各ジョブの終了時にランナー上で評価されます。 シークレットを含む出力はランナー上で編集され、GitHub Actionsには送られません。
依存するジョブでジョブ出力を使うには、needs
コンテキストを使用できます。 詳しくは、「コンテキスト」を参照してください。
注: $GITHUB_OUTPUT
は、ジョブ内のすべてのステップ間で共有されます。 複数のステップで同じ出力名を使用する場合、出力に書き込む最後のステップで値がオーバーライドされます。 ジョブでマトリックスを使用して $GITHUB_OUTPUT
に書き込みを行うと、マトリックスの組み合わせごとに内容がオーバーライドされます。 matrix
コンテキストを使用して、ジョブ構成ごとに一意の出力名を作成できます。 詳しくは、「コンテキスト」を参照してください。
例: ジョブの出力の定義
jobs:
job1:
runs-on: ubuntu-latest
# Map a step output to a job output
outputs:
output1: ${{ steps.step1.outputs.test }}
output2: ${{ steps.step2.outputs.test }}
steps:
- id: step1
run: echo "test=hello" >> "$GITHUB_OUTPUT"
- id: step2
run: echo "test=world" >> "$GITHUB_OUTPUT"
job2:
runs-on: ubuntu-latest
needs: job1
steps:
- env:
OUTPUT1: ${{needs.job1.outputs.output1}}
OUTPUT2: ${{needs.job1.outputs.output2}}
run: echo "$OUTPUT1 $OUTPUT2"