미리 정의된 CI/CD 변수 참조
미리 정의된 CI/CD 변수는 모든 GitLab CI/CD 파이프라인에서 사용할 수 있습니다.
미리 정의된 변수를 재정의하는 것을 피해야 합니다. 재정의하면 파이프라인이 예기치 않게 동작할 수 있습니다.
변수 이용 가능 여부
미리 정의된 변수는 파이프라인 실행의 세 가지 다른 단계에서 이용할 수 있습니다:
- Pre-pipeline: 파이프라인이 생성되기 전에 사용할 수 있는 변수입니다.
이러한 변수는 파이프라인을 생성할 때 어떤 구성 파일을 사용할지를 제어하기 위해
include:rules
과 함께 사용될 수 있는 유일한 변수입니다. - Pipeline: 파이프라인 변수는 GitLab이 파이프라인을 생성할 때 이용할 수 있습니다.
Pre-pipeline 변수와 함께 사용되어 작업에서 정의된
rules
을 구성하거나, 파이프라인에 추가할 작업을 결정하는 데 사용할 수 있습니다. - Job-only: 이러한 변수는 실행기가 작업을 가져가고 실행할 때 각 작업에만 이용할 수 있습니다.
미리 정의된 변수
변수 | 이용 가능성 | 설명 |
---|---|---|
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입니다. GitLab 15.11에서 도입되었습니다. |
CI_BUILDS_DIR
| Job-only | 빌드를 실행하는 최상위 디렉터리입니다. |
… | ||
… | ||
… | ||
CI_SERVER_VERSION
| 파이프라인 | GitLab 인스턴스의 전체 버전입니다. |
CI_SERVER
| Job-only | CI/CD에서 실행된 모든 작업에 대해 사용할 수 있습니다. 사용 가능할 때 yes 입니다.
|
CI_SHARED_ENVIRONMENT
| 파이프라인 | 작업이 공유 환경(이 작업만을 위해 만들어지고 실행 후 폐기/삭제되는 환경인 경우 - shell 및 ssh 외의 모든 실행기)에서 실행될 때만 사용할 수 있습니다. 사용 가능할 때 true 입니다.
|
CI_TEMPLATE_REGISTRY_HOST
| 파이프라인 | CI/CD 템플릿에서 사용하는 레지스트리의 호스트입니다. 기본값은 registry.gitlab.com 입니다. GitLab 15.3에서 도입되었습니다.
|
CI_TRIGGER_SHORT_TOKEN
| Job-only | 현재 작업의 트리거 토큰의 처음 4자리입니다. 파이프라인이 웹훅으로 트리거되었을 때만 사용할 수 있습니다. 예를 들어, 트리거 토큰이 glptt-1234567890abcdefghij 인 경우, CI_TRIGGER_SHORT_TOKEN 은 1234 가 됩니다. GitLab 17.0에서 도입되었습니다. |
GITLAB_CI
| 파이프라인 | CI/CD에서 실행된 모든 작업에 대해 사용할 수 있습니다. 사용 가능할 때 true 입니다.
|
… | ||
… | ||
… | ||
TRIGGER_PAYLOAD
| 파이프라인 | 웹훅 페이로드입니다. 파이프라인이 웹훅으로 트리거되었을 때만 사용할 수 있습니다. |
머지 리퀘스트 파이프라인을 위한 사전 정의된 변수
이 변수들은 GitLab이 파이프라인을 생성하기 전(Pre-pipeline)에 사용할 수 있습니다.
이러한 변수들은 include:rules
와 함께 사용하여 파이프라인을 생성할 때 어떤 구성 파일을 사용할지 제어하는 데에 사용될 수 있습니다.
파이프라인은 머지 리퀘스트 파이프라인이어야 하며, 머지 리퀘스트는 열려 있어야 합니다.
변수 | 설명 |
---|---|
CI_MERGE_REQUEST_APPROVED
| 머지 리퀘스트의 승인 상태입니다. 머지 리퀘스트 승인 사용 가능하고 머지 리퀘스트가 승인되었을 때에 true 입니다.
|
CI_MERGE_REQUEST_ASSIGNEES
| 머지 리퀘스트에 대한 담당자들의 사용자 이름을 쉼표로 구분한 목록입니다. |
CI_MERGE_REQUEST_DIFF_BASE_SHA
| 머지 리퀘스트 디퍼런스의 베이스 SHA입니다. |
CI_MERGE_REQUEST_DIFF_ID
| 머지 리퀘스트 디퍼런스의 버전입니다. |
CI_MERGE_REQUEST_EVENT_TYPE
| 머지 리퀘스트의 이벤트 유형입니다. detached , merged_result , 또는 merge_train 이 될 수 있습니다.
|
CI_MERGE_REQUEST_DESCRIPTION
| 머지 리퀘스트의 설명입니다. 설명이 2700자를 초과할 때에는 처음 2700자만 변수에 저장됩니다. GitLab 16.7에서 소개되었습니다. |
CI_MERGE_REQUEST_DESCRIPTION_IS_TRUNCATED
|
CI_MERGE_REQUEST_DESCRIPTION 이 머지 리퀘스트의 설명이 너무 길어 2700자로 줄어든 경우 true 입니다. GitLab 16.8에서 소개되었습니다.
|
CI_MERGE_REQUEST_ID
| 머지 리퀘스트의 인스턴스 레벨 ID입니다. 이 ID는 GitLab 인스턴스의 모든 프로젝트를 통틀어 고유합니다. |
CI_MERGE_REQUEST_IID
| 머지 리퀘스트의 프로젝트 레벨 IID(내부 ID)입니다. 현재 프로젝트에서만 고유한 이 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
| 머지 리퀘스트의 참조 경로입니다. 예를 들어, refs/merge-requests/1/head 입니다.
|
CI_MERGE_REQUEST_SOURCE_BRANCH_NAME
| 머지 리퀘스트의 소스 브랜치 이름입니다. |
CI_MERGE_REQUEST_SOURCE_BRANCH_PROTECTED
| 머지 리퀘스트의 소스 브랜치가 보호된 경우 true 입니다. GitLab 16.4에서 소개되었습니다.
|
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_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 통합은 해당 통합에서 사용할 수 있는 배포 변수를 정의합니다.
각 통합의 문서에서 통합에 사용 가능한 배포 변수가 있는지 설명합니다.
통합 변수
일부 통합은 작업에서 변수를 사용할 수 있도록 합니다. 이러한 변수는 작업 전용 미리 정의된 변수로 사용할 수 있습니다.
-
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
명령어를 사용하여 작업에 사용 가능한 모든 변수의 값을 출력할 수 있습니다.