플로우 실행 변수
모든 변수가 플로우를 실행하는 작업에서 사용 가능한 것은 아닙니다. 다음 변수를 플로우를 실행하는 작업에서 사용할 수 있습니다. 다음 미리 정의된 CI/CD 변수를 사용할 수 있습니다: 다음 환경 변수는 Agent Platform에 특화되어 있습니다.
모든 변수가 플로우를 실행하는 작업에서 사용 가능한 것은 아닙니다.
- 일부 미리 정의된 변수와 Agent Platform 특정 변수를 사용할 수 있습니다.
- 미리 정의된 필터링된 변수, 사용자 정의 CI/CD 변수, 사용자 ID 변수는 사용할 수 없습니다.
사용 가능한 변수#
다음 변수를 플로우를 실행하는 작업에서 사용할 수 있습니다.
미리 정의된 변수#
다음 미리 정의된 CI/CD 변수를 사용할 수 있습니다:
| 변수 | 설명 |
|---|---|
CI_PROJECT_ID |
프로젝트 ID. |
CI_PROJECT_NAME |
프로젝트 이름. |
CI_PROJECT_PATH |
네임스페이스가 포함된 프로젝트 경로. |
CI_PROJECT_URL |
프로젝트 HTTP URL. |
CI_PROJECT_NAMESPACE |
프로젝트 네임스페이스. |
CI_PROJECT_VISIBILITY |
프로젝트 가시성 (public, internal, 또는 private). |
CI_DEFAULT_BRANCH |
기본 브랜치 이름. |
CI_JOB_ID |
작업 ID. |
CI_JOB_URL |
작업 URL. |
CI_JOB_TOKEN |
작업 인증 토큰. |
CI_JOB_IMAGE |
작업에 사용된 Docker 이미지. |
CI_JOB_STATUS |
작업 상태. |
CI_JOB_TIMEOUT |
작업 타임아웃(초). |
CI_JOB_STARTED_AT |
ISO 8601 형식의 작업 시작 타임스탬프. |
CI_PIPELINE_ID |
파이프라인 ID. |
CI_PIPELINE_URL |
파이프라인 URL. |
CI_REGISTRY_USER |
컨테이너 레지스트리 사용자 이름 (gitlab-ci-token). |
CI_REGISTRY_PASSWORD |
컨테이너 레지스트리 비밀번호 (작업 토큰). |
CI_DEPENDENCY_PROXY_USER |
종속성 프록시 사용자 이름. |
CI_DEPENDENCY_PROXY_PASSWORD |
종속성 프록시 비밀번호. |
CI_REPOSITORY_URL |
자격 증명이 포함된 Git 클론 URL. |
CI_RUNNER_VERSION |
러너 버전. |
CI_RUNNER_EXECUTABLE_ARCH |
러너 아키텍처 (예: linux/amd64). |
CI_SERVER |
CI/CD 환경에서 항상 yes. |
CI_WORKLOAD_REF |
플로우 실행에 대한 워크로드 참조 (예: refs/workloads/c727f70ba7f). 이것들은 내부 Git 참조이며 파이프라인 작업이 완료되거나 실패할 때 자동으로 제거됩니다. |
환경 변수#
다음 환경 변수는 Agent Platform에 특화되어 있습니다.
이 변수는 setup_script와 기본 에이전트 런타임 모두에서 사용할 수 있습니다.
이 표는 주요 변수를 설명합니다. 추가 내부 변수 (예: 디버그 플래그 및 원격 측정 식별자)도 실행 컨테이너에 있을 수 있지만 플로우 구성에서 사용하도록 의도된 것은 아닙니다.
| 변수 | 설명 | 예 |
|---|---|---|
DUO_WORKFLOW_GIT_HTTP_BASE_URL |
GitLab 인스턴스 기본 URL. CI_SERVER_URL 대신 이것을 사용합니다. |
https://gitlab.com |
DUO_WORKFLOW_PROJECT_ID |
프로젝트 ID. CI_PROJECT_ID와 동일한 값. |
77056053 |
DUO_WORKFLOW_NAMESPACE_ID |
네임스페이스 ID. | 91555435 |
DUO_WORKFLOW_GOAL |
플로우를 트리거한 이슈의 URL. | https://gitlab.com/group/project/-/issues/10 |
DUO_WORKFLOW_DEFINITION |
플로우 정의 식별자. | developer/v1 |
DUO_WORKFLOW_SERVICE_REALM |
배포 유형. | saas 또는 self-managed |
DUO_WORKFLOW_GIT_HTTP_USER |
클론을 위한 Git HTTP 사용자 이름. | oauth |
DUO_WORKFLOW_GIT_HTTP_PASSWORD |
클론을 위한 Git HTTP 비밀번호. | (OAuth 토큰) |
DUO_WORKFLOW_GIT_USER_NAME |
플로우를 트리거한 사용자의 이름. Git 커미터로 사용됩니다. | Jane Developer |
DUO_WORKFLOW_GIT_USER_EMAIL |
플로우를 트리거한 사용자의 이메일. Git 커미터 이메일로 사용됩니다. | jdeveloper@example.com |
DUO_WORKFLOW_GIT_AUTHOR_EMAIL |
서비스 계정의 이메일. Git 작성자 이메일로 사용됩니다. | service_account_group_@noreply.gitlab.com |
DUO_WORKFLOW_GIT_AUTHOR_USER_NAME |
서비스 계정의 이름. Git 작성자 이름으로 사용됩니다. | Duo Developer |
GITLAB_BASE_URL |
GitLab 인스턴스 기본 URL. DUO_WORKFLOW_GIT_HTTP_BASE_URL과 동일한 값. |
https://gitlab.com |
GITLAB_PROJECT_PATH |
네임스페이스가 포함된 프로젝트 전체 경로. CI_PROJECT_PATH와 동일한 값. |
my-group/my-project |
GITLAB_TOKEN |
GitLab API 액세스를 위한 OAuth 토큰. DUO_WORKFLOW_GIT_HTTP_PASSWORD와 동일한 값. |
(OAuth 토큰) |
AGENT_PLATFORM_GITLAB_VERSION |
플로우를 실행하는 GitLab 버전. | 18.9.0 |
사용할 수 없음#
다음 변수는 플로우를 실행하는 작업에서 사용할 수 없습니다.
필터링된 미리 정의된 변수#
다음 미리 정의된 CI/CD 변수는 사용할 수 없습니다:
| 변수 | 이유 |
|---|---|
CI_REGISTRY |
워크로드 변수 게이트에 의해 필터링됩니다. 하드코딩된 레지스트리 호스트 이름을 대신 사용합니다. |
CI_REGISTRY_IMAGE |
워크로드 변수 게이트에 의해 필터링됩니다. 하드코딩된 이미지 경로를 대신 사용합니다. |
CI_SERVER_URL, CI_SERVER_HOST, CI_API_V4_URL |
필터링됩니다. 대신 GITLAB_BASE_URL 또는 DUO_WORKFLOW_GIT_HTTP_BASE_URL을 사용합니다. |
CI_COMMIT_SHA, CI_COMMIT_BRANCH, CI_COMMIT_REF_NAME |
작업에 커밋 컨텍스트가 없습니다. 소스 브랜치는 GitLab Duo 에이전트에 의해 관리됩니다. |
GITLAB_USER_LOGIN, GITLAB_USER_EMAIL, GITLAB_USER_NAME |
작업은 트리거한 사용자가 아닌 서비스 계정으로 실행됩니다. |
CI_PIPELINE_SOURCE, CI_PIPELINE_IID |
워크로드 변수 게이트에 의해 필터링됩니다. |
사용자 ID#
플로우 실행 중에 사용되는 CI 작업 토큰은 트리거한 사용자와 서비스 계정 모두를 나타내는 복합 ID 토큰입니다.
플로우 실행 중에 생성된 Git 커밋은 플로우를 트리거한 사용자가 커밋했지만 서비스 계정이 작성한 것으로 표시됩니다.
서비스 계정이 플로우를 실행하고 사용자가 아니기 때문에
GITLAB_USER_LOGIN과 GITLAB_USER_EMAIL 변수는 사용할 수 없습니다.
그러나 플로우를 트리거한 사용자의 ID는
DUO_WORKFLOW_GIT_USER_EMAIL과 DUO_WORKFLOW_GIT_USER_NAME에서 사용할 수 있으며,
서비스 계정 ID는
DUO_WORKFLOW_GIT_AUTHOR_EMAIL과 DUO_WORKFLOW_GIT_AUTHOR_USER_NAME에서 사용할 수 있습니다.
사용자 정의 CI/CD 변수#
프로젝트, 그룹 또는 인스턴스의 설정 > CI/CD > 변수에 정의된 사용자 정의 CI/CD 변수는 사용할 수 없습니다.
사용자 정의 CI/CD 변수에는 보호된 변수, 보호되지 않은 변수, 마스킹된 변수, 파일 변수가 포함됩니다.
모든 플로우 구성은 agent-config.yml에서 제공하거나
사용 가능한 환경 변수를 통해 제공해야 합니다.
GitLab 인스턴스 URL 액세스#
표준 CI_SERVER_URL 변수는 사용할 수 없습니다. 대신
GITLAB_BASE_URL 또는 DUO_WORKFLOW_GIT_HTTP_BASE_URL을 사용합니다.
예를 들어, setup_script에서 API 호출을 하려면:
setup_script:
- "curl --silent --header 'JOB-TOKEN: ${CI_JOB_TOKEN}' ${GITLAB_BASE_URL}/api/v4/projects/${CI_PROJECT_ID}"
