Skip to main content

ジョブの出力の定義

ジョブの出力のマップを作成します。

概要

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"