잡(job) 사이에 정보 전달하기

잡(job) 사이에 정보 전달하기

잡에서 출력값(output)을 정의하면 한 잡에서 다른 잡으로 정보를 전달할 수 있어요. 워크플로를 여러 잡으로 나눠서 관리할 때 반드시 알아두어야 할 기법이에요.

출처: 문서

본문

출력값을 정의해서 한 잡에서 다른 잡으로 정보를 전달할 수 있습니다.

출력값 정의하고 사용하기

  1. 출력값을 가져올 잡이 들어 있는 워크플로 파일을 엽니다.

  2. jobs.<job_id>.outputs 구문을 사용해서 잡의 출력값을 정의합니다. 예를 들어, 아래 잡은 output1output2 출력값을 정의하는데, 각각 step1step2의 결과에 매핑됩니다:

    jobs:
      job1:
        runs-on: ubuntu-latest
        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"
    
  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에서 정의한 output1output2 출력값에 접근합니다:

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

다음 단계

잡 출력값과 needs 컨텍스트에 대해 더 자세히 알아보려면 Workflow syntax for GitHub Actions의 다음 섹션을 참고하세요:

한 워크플로에서 다른 워크플로로 잡 출력값을 전달하는 방법에 대해 더 자세히 알아보려면 Reuse workflows의 다음 섹션을 참고하세요:

더 알아보기 (Learn more)