Skip to main content

ジョブ間で情報を渡す

あるジョブから別のジョブに情報を渡す出力を定義できます。

ジョブ出力の定義と使用

  1. 出力を取得するジョブを含むワークフロー ファイルを開きます。

  2. jobs.<job_id>.outputs 構文を使用して、ジョブの出力を定義します。 たとえば、次のジョブは、step1step2 の結果にそれぞれマッピングされる output1 出力と output2 出力を定義します。

    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"
    
  3. これらの出力にアクセスする別のジョブでは、jobs.<job_id>.needs 構文を使用して元のジョブに依存することができます。 たとえば、次のジョブは、実行前に job1 が完了していることを確認します。

    jobs:
      # Assume job1 is defined as above
      job2:
        runs-on: ubuntu-latest
        needs: job1
    
  4. 依存ジョブの出力にアクセスするには、needs.<job_id>.outputs.<output_name> 構文を使用します。 たとえば、次のジョブは job1 で定義されている output1 出力と output2 出力にアクセスします。

    jobs:
      # Assume job1 is defined as above
      job2:
        runs-on: ubuntu-latest
        needs: job1
        steps:
          - env:
              OUTPUT1: $
              OUTPUT2: $
            run: echo "$OUTPUT1 $OUTPUT2"
    

次のステップ

ジョブ出力と needs コンテキストの詳細については、「GitHub Actions のワークフロー構文」の次のセクションを参照してください。