Skip to main content

이 버전의 GitHub Enterprise Server는 다음 날짜에 중단됩니다. 2024-09-24. 중요한 보안 문제에 대해서도 패치 릴리스가 이루어지지 않습니다. 더 뛰어난 성능, 향상된 보안, 새로운 기능을 위해 최신 버전의 GitHub Enterprise Server로 업그레이드합니다. 업그레이드에 대한 도움말은 GitHub Enterprise 지원에 문의하세요.

Passing information between jobs

You can define outputs to pass information from one job to another.

참고: GitHub 호스트 실행기는 현재 GitHub Enterprise Server에서 지원되지 않습니다. GitHub public roadmap에 예정된 향후 지원에 대해 자세히 알아볼 수 있습니다.

Overview

jobs.<job_id>.outputs를 사용하여 작업 출력의 map을 만들 수 있습니다. 작업 출력은 이 작업에 의존하는 모든 다운스트림 작업에 사용할 수 있습니다. 작업 종속성 정의에 대한 자세한 내용은 jobs.<job_id>.needs를 참조하세요.

출력은 유니코드 문자열이며 최대 1MB일 수 있습니다. 워크플로 실행의 모든 출력 합계는 최대 50MB가 될 수 있습니다.

식을 포함하는 작업 출력은 각 작업의 끝에 있는 실행기에서 평가됩니다. 비밀이 포함된 출력은 실행기에서 수정되며 GitHub Actions로 보내지 않습니다.

종속 작업에서 작업 출력을 사용하려면 needs 컨텍스트를 사용할 수 있습니다. 자세한 내용은 "Accessing contextual information about workflow runs"을(를) 참조하세요.

예: 작업 출력 정의

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"

행렬형 작업에서 작업 출력 사용

행렬형은 서로 다른 이름의 여러 출력을 생성하는 데 사용할 수 있습니다. 행렬형을 사용하는 경우 행렬형 내의 모든 작업에서 작업 출력이 결합됩니다.

jobs:
  job1:
    runs-on: ubuntu-latest
    outputs:
      output_1: ${{ steps.gen_output.outputs.output_1 }}
      output_2: ${{ steps.gen_output.outputs.output_2 }}
      output_3: ${{ steps.gen_output.outputs.output_3 }}
    strategy:
      matrix:
        version: [1, 2, 3]
    steps:
      - name: Generate output
        id: gen_output
        run: |
          version="${{ matrix.version }}"
          echo "output_${version}=${version}" >> "$GITHUB_OUTPUT"
  job2:
    runs-on: ubuntu-latest
    needs: [job1]
    steps:
      # Will show
      # {
      #   "output_1": "1",
      #   "output_2": "2",
      #   "output_3": "3"
      # }
      - run: echo '${{ toJSON(needs.job1.outputs) }}'
작업은 행렬형 작업이 실행되는 순서를 보장하지 않습니다. 출력 이름이 고유한지 확인하고, 그렇지 않으면 실행되는 마지막 행렬형 작업이 출력 값을 재정의합니다.