사전 정의된 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_URL
    • HARBOR_HOST
    • HARBOR_OCI
    • HARBOR_PROJECT
    • HARBOR_USERNAME
    • HARBOR_PASSWORD
  • Apple App Store Connect:
    • APP_STORE_CONNECT_API_KEY_ISSUER_ID
    • APP_STORE_CONNECT_API_KEY_KEY_ID
    • APP_STORE_CONNECT_API_KEY_KEY
    • APP_STORE_CONNECT_API_KEY_IS_KEY_CONTENT_BASE64
  • Google Play:
    • SUPPLY_PACKAGE_NAME
    • SUPPLY_JSON_KEY_DATA
  • Diffblue Cover:
    • DIFFBLUE_LICENSE_KEY
    • DIFFBLUE_ACCESS_TOKEN_NAME
    • DIFFBLUE_ACCESS_TOKEN

문제 해결

script 명령으로 잡에 사용 가능한 모든 변수의 값을 출력할 수 있어요.

더 알아보기

사전 정의 변수의 사용 가능 시점과 우선순위 규칙을 이해하고 싶다면 CI/CD 변수 문서변수 사용 가능 위치 문서를 함께 읽어보는 걸 추천해요. 파이프라인 소스별 규칙을 쓸 때는 Rules 문서도 도움이 돼요.