Skip to main content

변수 참조

GitHub Actions 워크플로에서 지원되는 변수, 명명 규칙, 제한, 컨텍스트에 대한 정보를 찾아보세요.

이 문서에서는 환경 변수, 구성 변수, GitHub에서 제공하는 기본 변수를 포함하여 GitHub Actions 워크플로에서 사용할 수 있는 지원 변수를 나열합니다. 워크플로를 구성할 때 이 참조를 사용하여 변수 이름, 명명 규칙, 제한, 지원되는 컨텍스트를 조회합니다.

변수에 대한 자세한 내용은 변수을(를) 참조하세요.

기본 환경 변수

GitHub 집합의 기본 환경 변수는 워크플로의 모든 단계에서 사용할 수 있습니다.

기본 환경 변수는 GitHub에 의해 설정되고 워크플로에 정의되지 않으므로 env 컨텍스트를 통해 액세스할 수 없습니다. 그러나 대부분의 기본 변수에는 그에 상응하는 비슷한 이름의 컨텍스트 속성이 있습니다. 예를 들어 ${{ github.ref }} 컨텍스트 속성을 사용하여 워크플로를 처리하는 동안 GITHUB_REF 변수의 값을 읽을 수 있습니다.

GITHUB_*RUNNER_*(으)로 명명된 기본 환경 변수의 값에 덮어쓸 수 없습니다. 현재 CI 변수 값을 덮어쓸 수 있습니다. 그러나, 이것이 항상 가능할 것이라고 보장되지는 않습니다. 환경 변수 설정에 대한 자세한 내용은 변수에 정보 저장GitHub Actions에 대한 워크플로 명령을(를) 참조하세요.

작업에서는 하드 코딩된 파일 경로를 사용하는 대신 변수를 사용하여 파일 시스템에 액세스하는 것이 좋습니다. GitHub은(는) 모든 실행기 환경에서 사용할 작업에 대한 변수를 설정합니다.

변수설명
CI항상 true(으)로 설정합니다.
GITHUB_ACTION현재 실행 중인 작업의 이름 또는 단계의 id입니다. 예를 들어 작업의 경우 __repo-owner_name-of-action-repo입니다.

GitHub은(는) 특수 문자를 제거하고 현재 단계에서 스크립트를 실행할 때 id 없이 __run 이름을 사용합니다. 동일한 작업에서 동일한 스크립트 또는 작업을 두 번 이상 사용하는 경우 밑줄 앞에 오는 시퀀스 번호로 구성된 접미사가 이름에 포함됩니다. 예를 들어 실행하는 첫 번째 스크립트에는 이름이 __run으로 지정되고 두 번째 스크립트의 이름은 __run_2로 지정됩니다. 마찬가지로 두 번째 actions/checkout 호출은 actionscheckout2입니다.
GITHUB_ACTION_PATH작업이 있는 경로입니다. 이 속성은 복합 작업에서만 지원됩니다. 이 경로를 사용하여 작업이 있는 디렉터리를 변경하고 동일한 리포지토리에 있는 다른 파일에 액세스할 수 있습니다. 예를 들어 /home/runner/work/_actions/repo-owner/name-of-action-repo/v1입니다.
GITHUB_ACTION_REPOSITORY작업을 실행하는 단계의 경우 작업의 소유자 및 리포지토리 이름입니다. 예를 들어 actions/checkout입니다.
GITHUB_ACTIONSGitHub Actions이(가) 워크플로를 실행하는 경우 항상 true로 설정됩니다. 이 변수를 사용하여 테스트가 로컬로 실행되는 경우와 GitHub Actions(으)로 실행되는 경우를 구분할 수 있습니다.
GITHUB_ACTOR워크플로를 시작한 사용자 또는 앱의 이름입니다. 예를 들어 octocat입니다.
GITHUB_ACTOR_ID최초로 워크플로 실행을 트리거한 사용자 또는 앱의 계정 ID입니다. 예를 들어 1234567입니다. 행위자 사용자 이름과는 다릅니다.
GITHUB_API_URLAPI URL을 반환합니다. 예시: https://api.github.com
GITHUB_BASE_REF워크플로 실행에서 끌어오기 요청의 기본 참조 또는 대상 분기의 이름입니다. 워크플로 실행을 트리거하는 이벤트가 pull_request 또는 pull_request_target인 경우에만 설정됩니다. 예를 들어 main입니다.
GITHUB_ENV워크플로 명령에서 변수를 설정하는 파일에 대한 실행기 경로입니다. 이 파일의 경로는 현재 단계와 작업의 각 단계에 대한 변경 내용에 고유합니다. 예를 들어 /home/runner/work/_temp/_runner_file_commands/set_env_87406d6e-4979-4d42-98e1-3dab1f48b13a입니다. 자세한 내용은 GitHub Actions에 대한 워크플로 명령을(를) 참조하세요.
GITHUB_EVENT_NAME워크플로를 트리거한 이벤트의 이름입니다. 예를 들어 workflow_dispatch입니다.
GITHUB_EVENT_PATH전체 이벤트 웹후크 페이로드가 포함된 실행기에서 파일의 경로입니다. 예를 들어 /github/workflow/event.json입니다.
GITHUB_GRAPHQL_URLGraphQL API URL을 반환합니다. 예시: https://api.github.com/graphql
GITHUB_HEAD_REF워크플로 실행에서 끌어오기 요청의 헤드 참조 또는 원본 분기입니다. 이 속성은 워크플로 실행을 트리거하는 이벤트가 pull_request 또는 pull_request_target인 경우에만 설정됩니다. 예를 들어 feature-branch-1입니다.
GITHUB_JOB현재 작업의 job_id입니다. 예를 들어 greeting_job입니다.
GITHUB_OUTPUT워크플로 명령에서 현재 단계의 출력을 설정하는 파일에 대한 실행기 경로입니다. 이 파일의 경로는 현재 단계와 작업의 각 단계에 대한 변경 내용에 고유합니다. 예를 들어 /home/runner/work/_temp/_runner_file_commands/set_output_a50ef383-b063-46d9-9157-57953fc9f3f0입니다. 자세한 내용은 GitHub Actions에 대한 워크플로 명령을(를) 참조하세요.
GITHUB_PATH워크플로 명령에서 시스템 PATH 변수를 설정하는 파일에 대한 실행기 경로입니다. 이 파일의 경로는 현재 단계와 작업의 각 단계에 대한 변경 내용에 고유합니다. 예를 들어 /home/runner/work/_temp/_runner_file_commands/add_path_899b9445-ad4a-400c-aa89-249f18632cf5입니다. 자세한 내용은 GitHub Actions에 대한 워크플로 명령을(를) 참조하세요.
GITHUB_REF워크플로 실행을 트리거한 분기 또는 태그의 완전한 형식 참조 입니다. push에 의해 트리거된 워크플로의 경우 푸시된 분기 또는 태그 참조입니다. pull_request에 의해 트리거된 워크플로의 경우 끌어오기 요청 병합 분기입니다. release에 의해 트리거된 워크플로의 경우 생성된 릴리스 태그입니다. 다른 트리거의 경우 워크플로 실행을 트리거한 분기 또는 태그 참조입니다. 이벤트 유형에 대해 분기 또는 태그를 사용할 수 있는 경우에만 설정됩니다. 지정된 참조는 완전한 형식을 가집니다. 즉, 분기의 형식은 refs/heads/<branch_name>입니다. pull_request_target을 제외한 끌어오기 요청 이벤트의 경우는 refs/pull/<pr_number>/merge입니다. pull_request_target 이벤트에는 베이스 분기의 ref가 있습니다. 태그의 경우에는 refs/tags/<tag_name>입니다. 예를 들어 refs/heads/feature-branch-1입니다.
GITHUB_REF_NAME워크플로 실행을 트리거한 분기 또는 태그입니다. 해당 값은 GitHub에 표시된 분기 또는 태그 이름과 일치합니다. 예를 들어 feature-branch-1입니다.

끌어오기 요청의 경우 형식은 <pr_number>/merge입니다.
GITHUB_REF_PROTECTED분기 보호가 또는 규칙 집합이 워크플로 실행을 트리거한 ref에 대해 구성된 경우 true입니다.
GITHUB_REF_TYPE워크플로 실행을 트리거한 ref의 형식입니다. 유효한 값은 branch 또는 tag입니다.
GITHUB_REPOSITORY소유자 및 리포지토리 이름입니다. 예를 들어 octocat/Hello-World입니다.
GITHUB_REPOSITORY_ID리포지토리 ID. 예를 들어 123456789입니다. 리포지토리 이름과는 다릅니다.
GITHUB_REPOSITORY_OWNER리포지토리 소유자의 이름입니다. 예를 들어 octocat입니다.
GITHUB_REPOSITORY_OWNER_ID리포지토리 소유자 계정 ID. 예를 들어 1234567입니다. 소유자의 이름과는 다른 값입니다.
GITHUB_RETENTION_DAYS워크플로 실행 로그 및 아티팩트가 유지되는 일 수입니다. 예를 들어 90입니다.
GITHUB_RUN_ATTEMPT리포지토리 내 각 특정 워크플로 실행 시도의 고유한 번호입니다. 이 숫자는 워크플로의 실행의 첫 시도 시 1부터 시작하며 다시 실행할 때마다 증가합니다. 예를 들어 3입니다.
GITHUB_RUN_ID리포지토리 내에서 실행되는 각 워크플로의 고유한 숫자입니다. 워크플로 실행을 다시 실행하는 경우 이 숫자는 변경되지 않습니다.(예시: 1658821493).
GITHUB_RUN_NUMBER리포지토리에 있는 특정 워크플로의 실행마다 고유한 숫자입니다. 이 숫자는 워크플로의 첫 실행 시 1부터 시작하며 새 실행마다 증가합니다. 워크플로 실행을 다시 실행하는 경우 이 숫자는 변경되지 않습니다.(예시: 3).
GITHUB_SERVER_URLGitHub 서버의 URL입니다. 예: https://github.com
GITHUB_SHA워크플로를 트리거한 커밋 SHA입니다. 이 커밋 SHA의 값은 워크플로를 트리거한 이벤트에 따라 달라집니다. 자세한 내용은 워크플로를 트리거하는 이벤트을(를) 참조하세요. 예를 들어 ffac537e6cbbf934b08745a378932722df287a53입니다.
GITHUB_STEP_SUMMARY워크플로 명령의 작업 요약이 포함된 파일에 대한 실행기 경로입니다. 이 파일의 경로는 현재 단계와 작업의 각 단계에 대한 변경 내용에 고유합니다. 예를 들어 /home/runner/_layout/_work/_temp/_runner_file_commands/step_summary_1cb22d7f-5663-41a8-9ffc-13472605c76c입니다. 자세한 내용은 GitHub Actions에 대한 워크플로 명령을(를) 참조하세요.
GITHUB_TRIGGERING_ACTOR워크플로 실행을 시작한 사용자의 사용자 이름입니다. 워크플로 실행이 다시 실행인 경우 이 값은 github.actor와 다를 수 있습니다. 다시 실행을 시작하는 행위자(github.triggering_actor)가 다른 권한을 갖고 있더라도 모든 워크플로 다시 실행은 github.actor의 권한을 사용합니다.
GITHUB_WORKFLOW워크플로의 이름입니다. 예를 들어 My test workflow입니다. 워크플로 파일이 name을 지정하지 않으면 이 변수의 값은 리포지토리에 있는 워크플로 파일의 전체 경로입니다.
GITHUB_WORKFLOW_REF워크플로의 참조 경로입니다. 예를 들어 octocat/hello-world/.github/workflows/my-workflow.yml@refs/heads/my_branch입니다.
GITHUB_WORKFLOW_SHA워크플로 파일의 커밋 SHA입니다.
GITHUB_WORKSPACE단계에 대한 실행기의 기본 작업 디렉터리 및 checkout 작업을 사용할 때 리포지토리의 기본 위치입니다. 예를 들어 /home/runner/work/my-repo-name/my-repo-name입니다.
RUNNER_ARCH작업을 실행하는 실행기의 아키텍처입니다. 가능한 값은 X86, X64, ARM, ARM64입니다.
RUNNER_DEBUG디버그 로깅을 사용하도록 설정한 경우에만 설정되며 항상 값이 1입니다. 사용자 고유의 작업 단계에서 추가 디버깅 또는 자세한 로깅을 사용하도록 설정하는 지표로 유용할 수 있습니다.
RUNNER_ENVIRONMENT작업을 실행하는 실행기의 환경입니다. 가능한 값은 GitHub에서 제공하는 GitHub 호스트형 실행기의 경우 github-hosted, 리포지토리 소유자가 구성한 자체 호스트형 실행기의 경우 self-hosted입니다.
RUNNER_NAME작업을 실행하는 실행기의 이름입니다. 실행기 이름은 리포지토리의 실행기로 워크플로 실행 시 고유하지 않을 수 있으며 조직 수준에서 동일한 이름을 사용할 수 있습니다.(예시: Hosted Agent).
RUNNER_OS작업을 실행하는 실행기의 운영 체제입니다. 가능한 값은 Linux, Windows, 또는 macOS입니다.(예시: Windows).
RUNNER_TEMP실행기의 임시 디렉터리에 대한 경로입니다. 이 디렉터리는 각 작업의 시작과 끝에 비워집니다. 실행기 사용자 계정에 삭제 권한이 없는 경우 파일이 제거되지 않습니다.(예시: D:\a\_temp).
RUNNER_TOOL_CACHEGitHub 호스팅 실행기에 대해 미리 설치된 도구가 포함된 디렉터리의 경로입니다. 자세한 내용은 GitHub-hosted runners을(를) 참조하세요.(예시: C:\hostedtoolcache\windows).

참고 항목

작업 내에서 워크플로 실행의 URL을 사용해야 하는 경우 이러한 $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID 변수를 결합할 수 있습니다.

구성 변수에 대한 명명 규칙

구성 변수 이름에는 다음 규칙이 적용됩니다.

  • 영숫자 문자([a-z], [A-Z], [0-9]) 또는 밑줄(_)만 포함할 수 있습니다. 공백은 사용할 수 없습니다.
  • GITHUB_ 접두사로 시작하지 않아야 합니다.
  • 숫자로 시작할 수 없습니다.
  • 참조할 때 대/소문자를 구분하지 않습니다. GitHub는 입력 방법에 관계없이 비밀 이름을 대문자로 저장합니다.
  • 리포지토리, 조직, 해당 리포지토리가 만들어진 엔터프라이즈에 고유해야 합니다.

환경 변수의 명명 규칙

환경 변수를 설정하는 경우 기본 환경 변수 이름을 사용할 수 없습니다. 기본 환경 변수의 전체 목록은 아래 변수 참조을(를) 참조하세요. 이러한 기본 변수 중 하나의 값을 재정의하려고 하면 할당이 무시됩니다.

참고 항목

단계에서 run: env를 사용한 다음 단계의 출력을 검사하여 워크플로 단계에서 사용할 수 있는 전체 환경 변수 집합을 나열할 수 있습니다.

구성 변수 우선 참조

이름이 같은 변수가 여러 수준에 있는 경우 가장 낮은 수준의 변수가 우선적으로 참조됩니다. 예를 들어, 조직 수준 변수의 이름이 리포지토리 수준 변수와 동일한 경우 리포지토리 수준 변수가 우선 참조됩니다. 마찬가지로 조직, 리포지토리 및 환경 모두에 이름이 같은 변수가 있는 경우 환경 수준 변수가 우선 참조됩니다.

재사용 가능한 워크플로의 경우 호출자 워크플로 리포지토리의 변수가 사용됩니다. 호출된 워크플로를 포함하는 리포지토리의 변수는 호출자 워크플로에서 사용할 수 없습니다.

구성 변수에 대한 제한

개별 변수의 크기는 48KB로 제한됩니다.

최대 1,000개의 조직 변수, 리포지토리당 500개의 변수, 환경당 100개의 변수를 저장할 수 있습니다. 조직 및 리포지토리 변수의 총 결합 크기 제한은 워크플로 실행당 256KB입니다.

리포지토리에서 만든 워크플로는 다음과 같은 수의 변수에 액세스할 수 있습니다.

  • 리포지토리 변수의 총 크기가 256KB 미만인 경우 최대 500개의 리포지토리 변수. 리포지토리 변수의 총 크기가 256KB를 초과하는 경우, 해당 제한에 미치지 않는 리포지토리 변수만 사용할 수 있습니다(변수 이름으로 사전순 정렬).
  • 리포지토리 및 조직 변수의 총 결합 크기가 256KB 미만인 경우 최대 1,000개의 조직 변수. 조직 및 리포지토리 변수의 총 결합 크기가 256KB를 초과하는 경우, 해당 제한에 미치지 않는 조직 변수만 사용할 수 있습니다(리포지토리 변수를 고려한 후 변수 이름으로 사전순 정렬).
  • 최대 100개의 환경 수준 변수.

참고 항목

환경 수준 변수는 256KB의 총 크기 제한에 포함되지 않습니다. 리포지토리 및 조직 변수의 결합된 크기 제한을 초과하고 추가 변수가 필요한 경우, 환경을 사용하고 환경에서 추가 변수를 정의할 수 있습니다.

지원되는 컨텍스트

실행기에 작업을 보내기 전에 처리되는 워크플로의 일부에서 변수 값에 액세스하기 위해 보통 env 또는 github 컨텍스트를 사용합니다.

경고

github 컨텍스트를 로그에 출력하지 마세요. 중요한 정보가 포함되어 있습니다.

Context사용 사례예시
env워크플로에 정의된 사용자 지정 변수를 참조합니다.${{ env.MY_VARIABLE }}
github워크플로 실행 및 실행을 트리거한 이벤트에 대한 정보를 참조합니다.${{ github.repository }}