사전 정의된 CI/CD 변수 참조
사전 정의된 CI/CD 변수 참조 (Predefined CI/CD variables)
사전 정의된 CI/CD 변수는 모든 GitLab CI/CD 파이프라인에서 사용할 수 있어요.
사전 정의 변수를 재정의하면 파이프라인이 예기치 않게 동작할 수 있으니 피하는 게 좋아요.
출처: 문서
본문
변수 가용성
사전 정의 변수는 파이프라인 실행의 세 가지 단계에서 사용 가능해져요.
- 파이프라인 이전(Pre-pipeline): 파이프라인 이전 변수는 파이프라인이 생성되기 전에 사용할 수 있어요. 파이프라인을 만들 때 어떤 구성 파일을 사용할지 제어하는
[include:rules](/ci/yaml/#includerules)와 함께 사용할 수 있는 유일한 변수예요. - 파이프라인(Pipeline): 파이프라인 변수는 GitLab이 파이프라인을 만들 때 사용할 수 있어요. 파이프라인 이전 변수와 함께, 파이프라인에 어떤 잡을 추가할지 결정하기 위해 잡에 정의된
[rules](/ci/yaml/#rules)를 구성하는 데 사용할 수 있어요. - 잡 전용(Job-only): 이 변수들은 러너가 잡을 집어 들고 실행할 때만 각 잡에서 사용할 수 있으며, 그리고:
- 잡 스크립트에서 사용할 수 있어요.
- 트리거 잡과 함께 사용할 수 없어요.
[workflow](/ci/yaml/#workflow),[include](/ci/yaml/#include),[rules](/ci/yaml/#rules)와 함께 사용할 수 없어요.
사전 정의 변수
다음은 각 변수의 가용성과 설명이에요. "가용성" 열의 파이프라인 이전은 파이프라인 생성 전, 파이프라인은 파이프라인 생성 시점, 잡 전용은 잡 실행 시점에 사용 가능함을 뜻해요.
| 변수 | 가용성 | 설명 |
|---|---|---|
| CHAT_CHANNEL | 파이프라인 | ChatOps 명령을 트리거한 소스 채팅 채널. |
| CHAT_INPUT | 파이프라인 | ChatOps 명령으로 전달된 추가 인수. |
| CHAT_USER_ID | 파이프라인 | ChatOps 명령을 트리거한 사용자의 채팅 서비스 사용자 ID. |
| CI | 파이프라인 이전 | CI/CD에서 실행되는 모든 잡에 사용 가능. 사용 가능할 때 true. |
| CI_API_V4_URL | 파이프라인 이전 | GitLab API v4 루트 URL. |
| CI_API_GRAPHQL_URL | 파이프라인 이전 | GitLab API GraphQL 루트 URL. |
| CI_BUILD_NETWORK_NAME | 잡 전용 | 잡이 생성한 네트워크의 이름. Docker executor에서 FF_NETWORK_PER_BUILD가 활성화되었을 때만 사용 가능. |
| CI_BUILDS_DIR | 잡 전용 | 빌드가 실행되는 최상위 디렉터리. |
| CI_COMMIT_AUTHOR | 파이프라인 이전 | Name <email> 형식의 커밋 작성자. |
| CI_COMMIT_BEFORE_SHA | 파이프라인 이전 | 브랜치나 태그에 있던 이전의 최신 커밋. 머지 리퀘스트 파이프라인, 예약된 파이프라인, 브랜치나 태그 파이프라인의 첫 커밋, 또는 파이프라인을 수동으로 실행할 때는 항상 0000000000000000000000000000000000000000. |
| CI_COMMIT_BRANCH | 파이프라인 이전 | 커밋 브랜치 이름. 기본 브랜치를 포함한 브랜치 파이프라인에서 사용 가능. 머지 리퀘스트 파이프라인이나 태그 파이프라인에서는 사용 불가. |
| CI_COMMIT_DEFAULT_BRANCH_BASE_SHA | 파이프라인 이전 | CI_COMMIT_SHA와 기본 브랜치 사이의 병합 베이스. 기본 브랜치가 아닌 파이프라인에서만 사용 가능. GitLab 19.1에서 도입. |
| CI_COMMIT_DESCRIPTION | 파이프라인 이전 | 커밋의 설명. 제목이 100자보다 짧으면 설명은 첫 줄을 뺀 메시지. |
| CI_COMMIT_MESSAGE | 파이프라인 이전 | 전체 커밋 메시지. |
| CI_COMMIT_MESSAGE_IS_TRUNCATED | 파이프라인 이전 | 커밋 메시지가 너무 길어 GITLAB_CI_MAX_COMMIT_MESSAGE_SIZE_IN_BYTES 시스템 환경 변수(기본 100 KB)에 지정된 크기로 잘렸으면 true. 그렇지 않으면 false. GitLab 18.6에서 도입. |
| CI_COMMIT_REF_NAME | 파이프라인 이전 | 프로젝트가 빌드되는 브랜치 또는 태그 이름. |
| CI_COMMIT_REF_PROTECTED | 파이프라인 이전 | 보호된 참조에 대해 잡이 실행 중이면 true, 그렇지 않으면 false. |
| CI_COMMIT_REF_SLUG | 파이프라인 이전 | CI_COMMIT_REF_NAME을 소문자로, 63바이트로 줄이고 0-9와 a-z를 제외한 모든 것을 -로 바꾼 것. 앞뒤 - 없음. URL, 호스트 이름, 도메인 이름에 사용. |
| CI_COMMIT_SHA | 파이프라인 이전 | 프로젝트가 빌드되는 커밋 리비전. |
| CI_COMMIT_SHORT_SHA | 파이프라인 이전 | CI_COMMIT_SHA의 처음 8자. |
| CI_COMMIT_TAG | 파이프라인 이전 | 커밋 태그 이름. 태그 파이프라인에서만 사용 가능. |
| CI_COMMIT_TAG_MESSAGE | 파이프라인 이전 | 커밋 태그 메시지. 태그 파이프라인에서만 사용 가능. |
| CI_COMMIT_TIMESTAMP | 파이프라인 이전 | ISO 8601 형식의 커밋 타임스탬프. 예: 2022-01-31T16:47:55Z. 기본적으로 UTC. |
| CI_COMMIT_TITLE | 파이프라인 이전 | 커밋의 제목. 메시지의 전체 첫 줄. |
| CI_COMMIT_USER_LOGIN | 파이프라인 이전 | 작성자의 프로필과 이메일이 공개되어 커밋 이메일과 일치하면 커밋 작성자의 GitLab 사용자 이름, 그렇지 않으면 빈 문자열. GitLab 18.10에서 도입. |
| CI_CONCURRENT_ID | 잡 전용 | 단일 executor에서 빌드 실행의 고유 ID. |
| CI_CONCURRENT_PROJECT_ID | 잡 전용 | 단일 executor와 프로젝트에서 빌드 실행의 고유 ID. |
| CI_CONFIG_PATH | 파이프라인 이전 | CI/CD 구성 파일의 경로. 기본값은 .gitlab-ci.yml. |
| CI_CONFIG_REF_URI | 파이프라인 | 최상위 파이프라인 정의의 정규화된 ref 경로. 예: gitlab.example.com/my-group/my-project//.gitlab-ci.yml@refs/heads/main. 파이프라인 소스 ref를 결정할 수 없으면 사용 불가. GitLab 19.0에서 도입. |
| CI_DEBUG_TRACE | 파이프라인 | 디버그 로깅(트레이싱)이 활성화되어 있으면 true. |
| CI_DEBUG_SERVICES | 파이프라인 | 서비스 컨테이너 로깅이 활성화되어 있으면 true. |
| CI_DEFAULT_BRANCH | 파이프라인 이전 | 프로젝트의 기본 브랜치 이름. |
| CI_DEFAULT_BRANCH_SLUG | 파이프라인 이전 | CI_DEFAULT_BRANCH를 소문자로, 63바이트로 줄이고 0-9와 a-z를 제외한 모든 것을 -로 바꾼 것. 앞뒤 - 없음. URL, 호스트 이름, 도메인 이름에 사용. |
| CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX | 파이프라인 이전 | Dependency Proxy를 통해 이미지를 가져올 때 사용하는 직접 그룹 이미지 접두사. |
| CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX | 파이프라인 이전 | Dependency Proxy를 통해 이미지를 가져올 때 사용하는 최상위 그룹 이미지 접두사. |
| CI_DEPENDENCY_PROXY_PASSWORD | 파이프라인 | Dependency Proxy를 통해 이미지를 가져오는 비밀번호. |
| CI_DEPENDENCY_PROXY_SERVER | 파이프라인 이전 | Dependency Proxy에 로그인하기 위한 서버. 이 변수는 $CI_SERVER_HOST:$CI_SERVER_PORT와 같음. |
| CI_DEPENDENCY_PROXY_USER | 파이프라인 | Dependency Proxy를 통해 이미지를 가져오는 사용자 이름. |
| CI_DEPLOY_FREEZE | 파이프라인 이전 | 파이프라인이 배포 동결 기간 중에 실행될 때만 사용 가능. 사용 가능할 때 true. |
| CI_DEPLOY_PASSWORD | 잡 전용 | 프로젝트에 GitLab Deploy Token이 있으면 그 인증 비밀번호. |
| CI_DEPLOY_USER | 잡 전용 | 프로젝트에 GitLab Deploy Token이 있으면 그 인증 사용자 이름. |
| CI_DISPOSABLE_ENVIRONMENT | 파이프라인 | 잡이 일회용 환경(그 잡만을 위해 생성되고 이후 파괴됨)에서 실행될 때만 사용 가능. shell과 ssh executor를 제외한 모든 executor가 지원. 사용 가능할 때 true. |
| CI_ENVIRONMENT_ID | 파이프라인 | 이 잡의 환경 ID. environment:name이 설정되어 있으면 사용 가능. |
| CI_ENVIRONMENT_NAME | 파이프라인 | 이 잡의 환경 이름. environment:name이 설정되어 있으면 사용 가능. |
| CI_ENVIRONMENT_SLUG | 파이프라인 | 환경 이름의 단순화된 버전으로, DNS, URL, Kubernetes 레이블에 포함하기 적합. environment:name이 설정되어 있으면 사용 가능. 슬러그는 24자로 잘림. 대문자 환경 이름에는 무작위 접미사가 자동 추가됨. |
| CI_ENVIRONMENT_URL | 파이프라인 | 이 잡의 환경 URL. environment:url이 설정되어 있으면 사용 가능. |
| CI_ENVIRONMENT_ACTION | 파이프라인 | 이 잡의 환경에 지정된 동작 주석. environment:action이 설정되어 있으면 사용 가능. start, prepare 또는 stop일 수 있음. |
| CI_ENVIRONMENT_TIER | 파이프라인 | 이 잡의 환경 배포 티어. |
| CI_GITLAB_FIPS_MODE | 파이프라인 이전 | GitLab 인스턴스에서 FIPS 모드가 활성화되어 있을 때만 사용 가능. 사용 가능할 때 true. |
| CI_HAS_OPEN_REQUIREMENTS | 파이프라인 | 파이프라인 프로젝트에 열린 요구 사항이 있을 때만 사용 가능. 사용 가능할 때 true. |
| CI_JOB_GROUP_NAME | 파이프라인 | parallel 또는 수동으로 그룹화된 잡을 사용할 때 잡 그룹의 공유 이름. 예를 들어 잡 이름이 rspec:test: [ruby, ubuntu]이면 CI_JOB_GROUP_NAME은 rspec:test. 그 외에는 CI_JOB_NAME과 같음. GitLab 17.10에서 도입. |
| CI_JOB_ID | 잡 전용 | GitLab 인스턴스의 모든 잡에서 고유한 잡의 내부 ID. |
| CI_JOB_IMAGE | 잡 전용 | 잡을 실행하는 Docker 이미지 이름. 잡이 Docker 이미지를 명시적으로 지정할 때만 사용 가능. |
| CI_JOB_MANUAL | 파이프라인 | 잡이 수동으로 시작되었을 때만 사용 가능. 사용 가능할 때 true. |
| CI_JOB_NAME | 파이프라인 | 잡의 이름. |
| CI_JOB_NAME_SLUG | 파이프라인 | CI_JOB_NAME을 소문자로, 63바이트로 줄이고 0-9와 a-z를 제외한 모든 것을 -로 바꾼 것. 앞뒤 - 없음. 경로에 사용. |
| CI_JOB_RETRY_COUNT | 잡 전용 | 현재 파이프라인에서 잡이 재시도된 횟수. 첫 실행에서 0, 재시도마다 1씩 증가. GitLab 19.3에서 도입. |
| CI_JOB_STAGE | 파이프라인 | 잡의 스테이지 이름. |
| CI_JOB_STATUS | 잡 전용 | 각 러너 스테이지가 실행될 때의 잡 상태. after_script와 함께 사용. success, failed 또는 canceled일 수 있음. |
| CI_JOB_TAGS | 잡 전용 | 잡의 러너 태그 JSON 배열. 예: ["tag_1", "tag_2"]. GitLab 19.3에서 도입. |
| CI_JOB_TIMEOUT | 잡 전용 | 잡 타임아웃(초). |
| CI_JOB_TOKEN | 잡 전용 | 특정 API 엔드포인트에 인증하는 토큰. 잡이 실행되는 동안 유효. |
| CI_JOB_URL | 잡 전용 | 잡 세부 정보 URL. |
| CI_JOB_STARTED_AT | 잡 전용 | 잡이 시작된 날짜와 시간. ISO 8601 형식. 예: 2022-01-31T16:47:55Z. 기본적으로 UTC. |
| CI_JOB_STARTED_AT_SLUG | 잡 전용 | CI_JOB_STARTED_AT을 소문자로, 63바이트로 줄이고 0-9와 a-z를 제외한 모든 것을 -로 바꾼 것. 앞뒤 - 없음. Docker 이미지 태그와 다른 식별자에 적합. GitLab 18.7에서 도입. |
| CI_KUBERNETES_ACTIVE | 파이프라인 이전 | 파이프라인에 배포용 Kubernetes 클러스터가 사용 가능할 때만 사용 가능. 사용 가능할 때 true. |
| CI_NODE_INDEX | 파이프라인 | 잡 세트에서 잡의 인덱스. 잡이 parallel을 사용할 때만 사용 가능. |
| CI_NODE_TOTAL | 파이프라인 | 병렬로 실행되는 이 잡 인스턴스의 총 수. 잡이 parallel을 사용하지 않으면 1로 설정. |
| CI_OPEN_MERGE_REQUESTS | 파이프라인 이전 | 현재 브랜치와 프로젝트를 머지 리퀘스트 소스로 사용하는 최대 4개의 머지 리퀘스트를 쉼표로 구분한 목록. 브랜치에 연결된 머지 리퀘스트가 있을 때 브랜치 및 머지 리퀘스트 파이프라인에서만 사용 가능. 예: gitlab-org/gitlab!333,gitlab-org/gitlab-foss!11. |
| CI_PAGES_DOMAIN | 파이프라인 이전 | GitLab Pages를 호스팅하는 인스턴스 도메인(네임스페이스 서브도메인 제외). 전체 호스트 이름을 사용하려면 CI_PAGES_HOSTNAME을 사용. |
| CI_PAGES_HOSTNAME | 잡 전용 | Pages 배포의 전체 호스트 이름. |
| CI_PAGES_URL | 잡 전용 | GitLab Pages 사이트의 URL. 항상 CI_PAGES_DOMAIN의 서브도메인. GitLab 17.9 이상에서는 path_prefix가 지정되면 값을 포함. |
| CI_PIPELINE_ID | 잡 전용 | 현재 파이프라인의 ID. GitLab 인스턴스의 모든 프로젝트에서 고유. |
| CI_PIPELINE_IID | 파이프라인 | 현재 파이프라인의 IID(내부 ID). 현재 프로젝트에서만 고유. |
| CI_PIPELINE_SOURCE | 파이프라인 이전 | 파이프라인이 어떻게 트리거되었는지. 값은 파이프라인 소스 중 하나일 수 있음. |
| CI_PIPELINE_TRIGGERED | 파이프라인 | 트리거 토큰으로 트리거된 파이프라인이면 true. trigger 키워드로 트리거된 파이프라인에는 CI_PIPELINE_SOURCE를 사용. |
| CI_PIPELINE_URL | 잡 전용 | 파이프라인 세부 정보 URL. |
| CI_PIPELINE_CREATED_AT | 잡 전용 | 파이프라인이 생성된 날짜와 시간. ISO 8601 형식. 예: 2022-01-31T16:47:55Z. 기본적으로 UTC. |
| CI_PIPELINE_NAME | 파이프라인 이전 | workflow:name에 정의된 파이프라인 이름. |
| CI_PIPELINE_SCHEDULE_DESCRIPTION | 파이프라인 이전 | 파이프라인 스케줄의 설명. 예약된 파이프라인에서만 사용 가능. GitLab 17.8에서 도입. |
| CI_PROJECT_DIR | 잡 전용 | 저장소가 복제된 전체 경로이자 잡이 실행되는 위치. GitLab Runner builds_dir 매개변수가 설정되면 이 변수는 builds_dir 값 기준의 상대 경로로 설정됨. 자세한 내용은 GitLab Runner 고급 구성을 참고. |
| CI_PROJECT_ID | 파이프라인 이전 | 현재 프로젝트의 ID. GitLab 인스턴스의 모든 프로젝트에서 고유. |
| CI_PROJECT_NAME | 파이프라인 이전 | 프로젝트 디렉터리 이름. 예를 들어 프로젝트 URL이 gitlab.example.com/group-name/project-1이면 CI_PROJECT_NAME은 project-1. |
| CI_PROJECT_NAMESPACE | 파이프라인 이전 | 잡의 프로젝트 네임스페이스(사용자 이름 또는 그룹 이름). |
| CI_PROJECT_NAMESPACE_ID | 파이프라인 이전 | 잡의 프로젝트 네임스페이스 ID. |
| CI_PROJECT_NAMESPACE_SLUG | 파이프라인 이전 | $CI_PROJECT_NAMESPACE를 소문자로, 63바이트로 줄이고 0-9와 a-z를 제외한 모든 것을 -로 바꾼 것. 앞뒤 - 없음. |
| CI_PROJECT_PATH_SLUG | 파이프라인 이전 | $CI_PROJECT_PATH를 소문자로, 63바이트로 줄이고 0-9와 a-z를 제외한 모든 것을 -로 바꾼 것. 앞뒤 - 없음. URL과 도메인 이름에 사용. |
| CI_PROJECT_PATH | 파이프라인 이전 | 프로젝트 이름이 포함된 프로젝트 네임스페이스. |
| CI_PROJECT_REPOSITORY_LANGUAGES | 파이프라인 이전 | 저장소에서 사용되는 언어를 쉼표로 구분한 소문자 목록. 예: ruby,javascript,html,css. 최대 언어 수는 5개로 제한. 상한을 늘리는 이슈가 제안됨. |
| CI_PROJECT_ROOT_NAMESPACE | 파이프라인 이전 | 잡의 루트 프로젝트 네임스페이스(사용자 이름 또는 그룹 이름). 예를 들어 CI_PROJECT_NAMESPACE가 root-group/child-group/grandchild-group이면 CI_PROJECT_ROOT_NAMESPACE는 root-group. |
| CI_PROJECT_ROOT_NAMESPACE_SLUG | 파이프라인 이전 | $CI_PROJECT_ROOT_NAMESPACE를 소문자로, 63바이트로 줄이고 0-9와 a-z를 제외한 모든 것을 -로 바꾼 것. 앞뒤 - 없음. GitLab 19.0에서 도입. |
| CI_PROJECT_TITLE | 파이프라인 이전 | GitLab 웹 인터페이스에 표시되는 사람이 읽을 수 있는 프로젝트 이름. |
| CI_PROJECT_DESCRIPTION | 파이프라인 이전 | GitLab 웹 인터페이스에 표시되는 프로젝트 설명. |
| CI_PROJECT_TOPICS | 파이프라인 이전 | 프로젝트에 할당된 주제(처음 20개로 제한)를 쉼표로 구분한 소문자 목록. GitLab 18.3에서 도입. |
| CI_PROJECT_URL | 파이프라인 이전 | 프로젝트의 HTTP(S) 주소. |
| CI_PROJECT_VISIBILITY | 파이프라인 이전 | 프로젝트 가시성. internal, private 또는 public. |
| CI_PROJECT_CLASSIFICATION_LABEL | 파이프라인 이전 | 프로젝트 외부 인증 분류 라벨. |
| CI_REGISTRY | 파이프라인 이전 | 컨테이너 레지스트리 서버 주소. host[:port] 형식. 예: registry.gitlab.example.com. 컨테이너 레지스트리가 GitLab 인스턴스에 활성화되어 있을 때만 사용 가능. |
| CI_REGISTRY_IMAGE | 파이프라인 이전 | 프로젝트 이미지를 푸시하거나, 가져오거나, 태그하는 컨테이너 레지스트리 기본 주소. host[:port]/project_full_path 형식. 예: registry.gitlab.example.com/my_group/my_project. 이미지 이름은 컨테이너 레지스트리 명명 규칙을 따라야 함. 컨테이너 레지스트리가 프로젝트에 활성화되어 있을 때만 사용 가능. |
| CI_REGISTRY_PASSWORD | 잡 전용 | GitLab 프로젝트 컨테이너 레지스트리에 컨테이너를 푸시하는 비밀번호. 컨테이너 레지스트리가 프로젝트에 활성화되어 있을 때만 사용 가능. 이 비밀번호 값은 CI_JOB_TOKEN과 같고 잡이 실행되는 동안만 유효. 장기 접근에는 CI_DEPLOY_PASSWORD를 사용. |
| CI_REGISTRY_USER | 잡 전용 | 프로젝트의 GitLab 컨테이너 레지스트리에 컨테이너를 푸시하는 사용자 이름. 컨테이너 레지스트리가 프로젝트에 활성화되어 있을 때만 사용 가능. |
| CI_RELEASE_DESCRIPTION | 파이프라인 | 릴리스의 설명. 태그 파이프라인에서만 사용 가능. 설명 길이는 처음 1024자로 제한. |
| CI_REPOSITORY_URL | 잡 전용 | CI/CD 잡 토큰으로 저장소를 Git clone(HTTP)하는 전체 경로. https://gitlab-ci-token:[email protected]/my-group/my-project.git 형식. |
| CI_RUNNER_DESCRIPTION | 잡 전용 | 러너의 설명. |
| CI_RUNNER_EXECUTABLE_ARCH | 잡 전용 | GitLab Runner 실행 파일의 OS/아키텍처. executor의 환경과 같지 않을 수 있음. |
| CI_RUNNER_ID | 잡 전용 | 사용 중인 러너의 고유 ID. |
| CI_RUNNER_REVISION | 잡 전용 | 잡을 실행하는 러너의 리비전. |
| CI_RUNNER_SHORT_TOKEN | 잡 전용 | 새 잡 요청을 인증하는 데 사용되는 러너의 고유 ID. 토큰에는 접두사가 있고 처음 17자가 사용됨. |
| CI_RUNNER_TAGS | 잡 전용 | 잡을 집어 든 러너에 구성된 러너 태그의 JSON 배열. 예: ["tag_1", "tag_2"]. |
| CI_RUNNER_VERSION | 잡 전용 | 잡을 실행하는 GitLab Runner의 버전. |
| CI_SERVER_FQDN | 파이프라인 이전 | 인스턴스의 정규화된 도메인 이름(FQDN). 예: gitlab.example.com:8080. |
| CI_SERVER_HOST | 파이프라인 이전 | 프로토콜이나 포트가 없는 GitLab 인스턴스 URL의 호스트. 예: gitlab.example.com. |
| CI_SERVER_NAME | 파이프라인 이전 | 잡을 조정하는 CI/CD 서버의 이름. |
| CI_SERVER_PORT | 파이프라인 이전 | 호스트나 프로토콜이 없는 GitLab 인스턴스 URL의 포트. 예: 8080. |
| CI_SERVER_PROTOCOL | 파이프라인 이전 | 호스트나 포트가 없는 GitLab 인스턴스 URL의 프로토콜. 예: https. |
| CI_SERVER_SHELL_SSH_HOST | 파이프라인 이전 | SSH를 통한 Git 저장소 접근에 사용되는 GitLab 인스턴스의 SSH 호스트. 예: gitlab.com. |
| CI_SERVER_SHELL_SSH_PORT | 파이프라인 이전 | SSH를 통한 Git 저장소 접근에 사용되는 GitLab 인스턴스의 SSH 포트. 예: 22. |
| CI_SERVER_REVISION | 파이프라인 이전 | 잡을 스케줄링하는 GitLab 리비전. |
| CI_SERVER_TLS_CA_FILE | 파이프라인 | 러너 설정에 tls-ca-file이 설정되었을 때 GitLab 서버를 검증하는 TLS CA 인증서가 들어 있는 파일. |
| CI_SERVER_TLS_CERT_FILE | 파이프라인 | 러너 설정에 tls-cert-file이 설정되었을 때 GitLab 서버를 검증하는 TLS 인증서가 들어 있는 파일. |
| CI_SERVER_TLS_KEY_FILE | 파이프라인 | 러너 설정에 tls-key-file이 설정되었을 때 GitLab 서버를 검증하는 TLS 키가 들어 있는 파일. |
| CI_SERVER_URL | 파이프라인 이전 | 프로토콜과 포트를 포함한 GitLab 인스턴스의 기본 URL. 예: https://gitlab.example.com:8080. |
| CI_SERVER_VERSION_MAJOR | 파이프라인 이전 | GitLab 인스턴스의 메이저 버전. 예를 들어 GitLab 버전이 17.2.1이면 CI_SERVER_VERSION_MAJOR는 17. |
| CI_SERVER_VERSION_MINOR | 파이프라인 이전 | GitLab 인스턴스의 마이너 버전. 예를 들어 GitLab 버전이 17.2.1이면 CI_SERVER_VERSION_MINOR는 2. |
| CI_SERVER_VERSION_PATCH | 파이프라인 이전 | GitLab 인스턴스의 패치 버전. 예를 들어 GitLab 버전이 17.2.1이면 CI_SERVER_VERSION_PATCH는 1. |
| CI_SERVER_VERSION | 파이프라인 이전 | GitLab 인스턴스의 전체 버전. |
| CI_SERVER | 잡 전용 | CI/CD에서 실행되는 모든 잡에 사용 가능. 사용 가능할 때 yes. |
| CI_SHARED_ENVIRONMENT | 파이프라인 | 잡이 공유 환경(CI/CD 호출 간에 유지되는 것, 예: shell 또는 ssh executor)에서 실행될 때만 사용 가능. 사용 가능할 때 true. |
| CI_TEMPLATE_REGISTRY_HOST | 파이프라인 이전 | CI/CD 템플릿이 사용하는 레지스트리 호스트. 기본값은 registry.gitlab.com. |
| CI_TRIGGER_SHORT_TOKEN | 잡 전용 | 현재 잡의 트리거 토큰 처음 4자. 파이프라인이 트리거 토큰으로 트리거되었을 때만 사용 가능. 예를 들어 트리거 토큰이 redacted:glptt-…이면 CI_TRIGGER_SHORT_TOKEN은 1234. GitLab 17.0에서 도입. |
| CI_UPSTREAM_JOB_ID | 파이프라인 이전 | 멀티 프로젝트 또는 부모-자식 파이프라인에서 현재 파이프라인을 트리거한 업스트림 트리거 잡의 ID. GitLab 18.9에서 도입. |
| CI_UPSTREAM_PIPELINE_ID | 파이프라인 이전 | 멀티 프로젝트 또는 부모-자식 파이프라인에서 현재 파이프라인을 트리거한 업스트림 파이프라인의 ID. GitLab 18.9에서 도입. |
| CI_UPSTREAM_PROJECT_ID | 파이프라인 이전 | 멀티 프로젝트 또는 부모-자식 파이프라인에서 현재 파이프라인을 트리거한 업스트림 프로젝트의 ID. GitLab 18.9에서 도입. |
| CI_TRACEPARENT | 잡 전용 | 잡의 W3C Trace Context traceparent 헤더 값. 형식은 00-trace_id-span_id-01. trace_id는 루트 파이프라인 ID를 0으로 채운 32자 16진수 문자열로, 부모·자식 파이프라인을 포함한 같은 파이프라인 계층의 모든 잡이 공유. span_id는 루트 파이프라인 ID와 잡 ID에서 파생된 결정적 해시로, 잡마다 고유. 이 변수로 CI/CD 잡을 외부 분산 추적 시스템과 연관시킬 수 있음. |
| CI_TRACESTATE | 잡 전용 | GitLab 특정 추적 메타데이터가 포함된 W3C Trace Context tracestate 헤더 값. 형식: gitlab=pipeline:pipeline_id;job:job_id. |
| GITLAB_CI | 파이프라인 이전 | CI/CD에서 실행되는 모든 잡에 사용 가능. 사용 가능할 때 true. |
| GITLAB_FEATURES | 파이프라인 이전 | GitLab 인스턴스와 라이선스에 사용 가능한 라이선스 기능을 쉼표로 구분한 목록. |
| GITLAB_USER_EMAIL | 파이프라인 | 파이프라인을 시작한 사용자의 이메일(잡이 수동 잡이 아닌 경우). 수동 잡에서는 잡을 시작한 사용자의 이메일. |
| GITLAB_USER_ID | 파이프라인 | 파이프라인을 시작한 사용자의 숫자 ID(잡이 수동 잡이 아닌 경우). 수동 잡에서는 잡을 시작한 사용자의 ID. |
| GITLAB_USER_LOGIN | 파이프라인 | 파이프라인을 시작한 사용자의 고유 사용자 이름(잡이 수동 잡이 아닌 경우). 수동 잡에서는 잡을 시작한 사용자의 사용자 이름. |
| GITLAB_USER_NAME | 파이프라인 | 파이프라인을 시작한 사용자의 표시 이름(프로필 설정의 사용자 정의 전체 이름)(잡이 수동 잡이 아닌 경우). 수동 잡에서는 잡을 시작한 사용자의 이름. |
| KUBECONFIG | 파이프라인 | 모든 공유 에이전트 연결에 대한 컨텍스트가 있는 kubeconfig 파일의 경로. Kubernetes용 GitLab 에이전트가 프로젝트에 접근하도록 승인되었을 때만 사용 가능. |
| TRIGGER_PAYLOAD | 파이프라인 | 웹훅 페이로드. 파이프라인이 웹훅으로 트리거되었을 때만 사용 가능. |
머지 리퀘스트 파이프라인용 사전 정의 변수
이 변수들은 GitLab이 파이프라인을 만들기 전(파이프라인 이전)에 사용할 수 있어요. [include:rules](/ci/yaml/includes/#use-rules-with-include)와 잡의 환경 변수로 사용할 수 있어요.
파이프라인이 머지 리퀘스트 파이프라인이어야 하고, 머지 리퀘스트가 열려 있어야 해요.
| 변수 | 설명 |
|---|---|
| CI_MERGE_REQUEST_APPROVED | 머지 리퀘스트의 승인 상태. 머지 리퀘스트 승인이 사용 가능하고 머지 리퀘스트가 승인되었으면 true. |
| CI_MERGE_REQUEST_ASSIGNEES | 머지 리퀘스트 담당자의 사용자 이름을 쉼표로 구분한 목록. 머지 리퀘스트에 담당자가 한 명 이상 있을 때만 사용 가능. |
| CI_MERGE_REQUEST_DIFF_BASE_SHA | 머지 리퀘스트 diff의 기본 SHA. |
| CI_MERGE_REQUEST_DIFF_ID | 머지 리퀘스트 diff의 버전. |
| CI_MERGE_REQUEST_EVENT_TYPE | 머지 리퀘스트의 이벤트 유형. detached, merged_result 또는 merge_train일 수 있음. |
| CI_MERGE_REQUEST_DESCRIPTION | 머지 리퀘스트의 설명. 설명이 2700자보다 길면 변수에 처음 2700자만 저장. |
| CI_MERGE_REQUEST_DESCRIPTION_IS_TRUNCATED | 머지 리퀘스트 설명이 너무 길어 2700자로 잘렸으면 true, 그렇지 않으면 false. |
| CI_MERGE_REQUEST_ID | 머지 리퀘스트의 ID. GitLab 인스턴스의 모든 프로젝트에서 고유. |
| CI_MERGE_REQUEST_IID | 머지 리퀘스트의 IID(내부 ID). 현재 프로젝트에서 고유하며, 머지 리퀘스트 URL, 페이지 제목, 기타 표시되는 위치에서 사용되는 숫자. |
| CI_MERGE_REQUEST_LABELS | 머지 리퀘스트의 라벨 이름을 쉼표로 구분한 목록. 머지 리퀘스트에 라벨이 한 개 이상 있을 때만 사용 가능. |
| CI_MERGE_REQUEST_MILESTONE | 머지 리퀘스트의 마일스톤 제목. 머지 리퀘스트에 마일스톤이 설정되어 있을 때만 사용 가능. |
| CI_MERGE_REQUEST_PROJECT_ID | 머지 리퀘스트 프로젝트의 ID. |
| CI_MERGE_REQUEST_PROJECT_PATH | 머지 리퀘스트 프로젝트의 경로. 예: namespace/awesome-project. |
| CI_MERGE_REQUEST_PROJECT_URL | 머지 리퀘스트 프로젝트의 URL. 예: http://192.168.10.15:3000/namespace/awesome-project. |
| CI_MERGE_REQUEST_REF_PATH | 머지 리퀘스트의 ref 경로. 예: refs/merge-requests/1/head. |
| CI_MERGE_REQUEST_SOURCE_BRANCH_NAME | 머지 리퀘스트의 소스 브랜치 이름. |
| CI_MERGE_REQUEST_SOURCE_BRANCH_PROTECTED | 머지 리퀘스트의 소스 브랜치가 보호되면 true. |
| CI_MERGE_REQUEST_SOURCE_BRANCH_SHA | 머지 리퀘스트 소스 브랜치의 HEAD SHA. 머지 리퀘스트 파이프라인에서는 빈 변수. SHA는 병합 결과 파이프라인에서만 존재. |
| CI_MERGE_REQUEST_SOURCE_PROJECT_ID | 머지 리퀘스트 소스 프로젝트의 ID. |
| CI_MERGE_REQUEST_SOURCE_PROJECT_PATH | 머지 리퀘스트 소스 프로젝트의 경로. |
| CI_MERGE_REQUEST_SOURCE_PROJECT_URL | 머지 리퀘스트 소스 프로젝트의 URL. |
| CI_MERGE_REQUEST_SQUASH_ON_MERGE | 병합 시 스쿼시 옵션이 설정되어 있으면 true. |
| CI_MERGE_REQUEST_TARGET_BRANCH_NAME | 머지 리퀘스트의 대상 브랜치 이름. |
| CI_MERGE_REQUEST_TARGET_BRANCH_PROTECTED | 머지 리퀘스트의 대상 브랜치가 보호되면 true. |
| CI_MERGE_REQUEST_TARGET_BRANCH_SHA | 머지 리퀘스트 대상 브랜치의 HEAD SHA. 머지 리퀘스트 파이프라인에서는 빈 변수. SHA는 병합 결과 파이프라인에서만 존재. |
| CI_MERGE_REQUEST_TITLE | 머지 리퀘스트의 제목. |
| CI_MERGE_REQUEST_DRAFT | 머지 리퀘스트가 초안(draft)이면 true. GitLab 17.10에서 도입. |
외부 풀 리퀘스트 파이프라인용 사전 정의 변수
이 변수들은 다음 조건일 때만 사용할 수 있어요.
- 파이프라인이 외부 풀 리퀘스트 파이프라인일 때.
- 풀 리퀘스트가 열려 있을 때.
| 변수 | 설명 |
|---|---|
| CI_EXTERNAL_PULL_REQUEST_IID | GitHub의 풀 리퀘스트 ID. |
| CI_EXTERNAL_PULL_REQUEST_SOURCE_REPOSITORY | 풀 리퀘스트의 소스 저장소 이름. |
| CI_EXTERNAL_PULL_REQUEST_TARGET_REPOSITORY | 풀 리퀘스트의 대상 저장소 이름. |
| CI_EXTERNAL_PULL_REQUEST_SOURCE_BRANCH_NAME | 풀 리퀘스트의 소스 브랜치 이름. |
| CI_EXTERNAL_PULL_REQUEST_SOURCE_BRANCH_SHA | 풀 리퀘스트 소스 브랜치의 HEAD SHA. |
| CI_EXTERNAL_PULL_REQUEST_TARGET_BRANCH_NAME | 풀 리퀘스트의 대상 브랜치 이름. |
| CI_EXTERNAL_PULL_REQUEST_TARGET_BRANCH_SHA | 풀 리퀘스트 대상 브랜치의 HEAD SHA. |
배포 변수
배포 구성을 담당하는 통합은 빌드 환경에 설정되는 자체 사전 정의 변수를 정의할 수 있어요. 이 변수들은 배포 잡에서만 정의돼요.
예를 들어 Kubernetes 통합은 통합과 함께 사용할 수 있는 배포 변수를 정의해요.
각 통합 문서는 해당 통합에 사용 가능한 배포 변수가 있는지 설명해요.
Auto DevOps 변수
Auto DevOps가 활성화되면 몇 가지 추가 파이프라인 이전 변수가 제공돼요.
AUTO_DEVOPS_EXPLICITLY_ENABLED: Auto DevOps가 활성화되었음을 나타내는1값.STAGING_ENABLED: Auto DevOps 배포 전략 참고.INCREMENTAL_ROLLOUT_MODE: Auto DevOps 배포 전략 참고.INCREMENTAL_ROLLOUT_ENABLED: 더 이상 사용되지 않음(deprecated).
통합 변수
일부 통합은 잡에서 사용할 수 있는 변수를 제공해요. 이 변수들은 잡 전용 사전 정의 변수로 사용할 수 있어요.
- Harbor:
HARBOR_URLHARBOR_HOSTHARBOR_OCIHARBOR_PROJECTHARBOR_USERNAMEHARBOR_PASSWORD
- Apple App Store Connect:
APP_STORE_CONNECT_API_KEY_ISSUER_IDAPP_STORE_CONNECT_API_KEY_KEY_IDAPP_STORE_CONNECT_API_KEY_KEYAPP_STORE_CONNECT_API_KEY_IS_KEY_CONTENT_BASE64
- Google Play:
SUPPLY_PACKAGE_NAMESUPPLY_JSON_KEY_DATA
- Diffblue Cover:
DIFFBLUE_LICENSE_KEYDIFFBLUE_ACCESS_TOKEN_NAMEDIFFBLUE_ACCESS_TOKEN
문제 해결
script 명령으로 잡에 사용 가능한 모든 변수의 값을 출력할 수 있어요.
더 알아보기
사전 정의 변수의 사용 가능 시점과 우선순위 규칙을 이해하고 싶다면 CI/CD 변수 문서와 변수 사용 가능 위치 문서를 함께 읽어보는 걸 추천해요. 파이프라인 소스별 규칙을 쓸 때는 Rules 문서도 도움이 돼요.