CI/CD YAML 구문 참조
Last updated
Last updated
include:template
키워드 유형: 전역 키워드.
가능한 입력:
include:template
의 예시:
여러 include:template
파일:
추가 정보:
after_script
가능한 입력값: 아래를 포함하는 배열:
한 줄 명령어.
after_script
의 예시:
추가 정보:
after_script
에 지정한 스크립트는 before_script
또는 script
명령에서 수행한 변경사항과 독립된 새 쉘에서 실행됩니다. 결과적으로 다음과 같은 특징을 가지게 됩니다:
before_script
또는 script
스크립트에서 수행한 변경사항의 접근 권한이 없습니다.
script
스크립트에서 내보낸 명령 별칭 및 변수.
before_script
또는 script
스크립트에서 설치한 소프트웨어와 같은 작업 영역 외의 변경사항 (런너 실행자에 따라 달라집니다).
작업의 종료 코드에 영향을 주지 않습니다. script
섹션이 성공하고 after_script
명령이 타임아웃되거나 실패하더라도 작업은 코드 0
(작업 성공
)으로 종료됩니다.
관련 주제:
before_script
가능한 입력: 다음을 포함하는 배열:
Single line commands.
before_script
예시:
추가 정보:
관련 주제:
[default와 함께
before_script 사용](script.md#set-a-default-before_script-or-after_script-for-all-jobs)하여 모든 작업의
script` 명령어 전에 실행되어야 하는 기본 명령어 배열을 정의합니다.
retry
retry
를 사용하여 작업이 실패할 경우 재시도되는 횟수를 구성하세요. 정의되지 않으면 기본값은 0
이며 작업은 재시도되지 않습니다.
작업이 실패하면 해당 작업은 성공 또는 최대 재시도 횟수에 도달할 때까지 2회 더 처리됩니다.
가능한 입력값:
0
(기본값), 1
, 또는 2
.
retry
의 예시:
test_advanced
는 종료 코드가 137
이거나 실행중인 시스템에 장애가 발생할 경우 최대 2회까지 재시도됩니다.
retry:when
가능한 입력값:
단일 실패 유형 또는 하나 이상의 실패 유형 배열:
always
: 모든 실패시 재시도 (기본값).
unknown_failure
: 실패 이유가 알려지지 않았을 때 재시도.
script_failure
: 다음 경우에 재시도:
스크립트 실행 실패시
api_failure
: API 실패시 재시도.
stuck_or_timeout_failure
: 작업이 멈추거나 시간이 초과되었을 때 재시도.
runner_system_failure
: 러너 시스템 장애시 재시도 (예: 작업 설정 실패).
runner_unsupported
: 러너가 지원되지 않을 경우 재시도.
stale_schedule
: 지연된 작업을 실행할 수 없을 경우 재시도.
job_execution_timeout
: 작업에 설정된 최대 실행 시간을 초과했을 때 재시도.
archived_failure
: 작업이 보관되어 실행할 수 없을 경우 재시도.
unmet_prerequisites
: 작업이 선행 작업을 완료하지 못했을 때 재시도.
scheduler_failure
: 스케줄러가 작업을 러너에 할당하지 못했을 때 재시도.
data_integrity_failure
: 알 수 없는 작업 문제가 있을 경우 재시도.
retry:when
의 예시 (단일 실패 유형):
러너 시스템 장애가 아닌 경우에는 작업이 재시도되지 않습니다.
retry:when
의 예시 (여러 실패 유형 배열):
retry:exit_codes
가능한 입력값:
단일 종료 코드.
종료 코드 배열.
retry:exit_codes
의 예시:
관련 주제:
rules
rules
를 사용하여 파이프라인에서 작업을 포함하거나 제외합니다.
rules
는 파이프라인이 생성될 때 평가되며, 평가는 순서대로 진행됩니다. 일치하는 항목이 발견되면, 작업은 구성에 따라 파이프라인에 포함되거나 제외됩니다.
작업 스크립트에서 생성된 dotenv 변수를 rules
에서 사용할 수 없습니다. 이는 rules
가 작업 실행 전에 평가되기 때문입니다.
rules
는 다음과 같이 정의된 규칙 배열을 허용합니다:
if
changes
exists
allow_failure
variables
when
작업은 파이프라인에 추가됩니다:
if
, changes
, 또는 exists
규칙이 일치하고, 또한 when: on_success
(기본값), when: delayed
, 또는 when: always
를 갖는 경우.
특정 when: on_success
, when: delayed
, 또는 when: always
에 도달한 경우.
작업은 파이프라인에 추가되지 않습니다:
규칙이 일치하지 않는 경우.
규칙이 일치하고 when: never
를 갖는 경우.
rules:if
rules:if
절을 사용하여 작업을 파이프라인에 추가할 시기를 지정합니다:
if
문이 true이면, 작업이 파이프라인에 추가됩니다.
if
문이 true이지만 when: never
와 결합된 경우, 작업이 파이프라인에 추가되지 않습니다.
어떤 if
문도 true가 아닌 경우, 작업이 파이프라인에 추가되지 않습니다.
가능한 입력:
rules:if
의 예시:
추가 세부 정보:
규칙이 일치하고 정의된 when
이 없는 경우, 규칙은 작업에 대해 정의된 기본값이 on_success
인 when
을 사용합니다.
GitLab 14.5 이전에는 규칙 당 when
을 한 번 정의하거나 작업 수준에서 한 번 정의할 수 있었습니다. 이는 모든 규칙에 적용되는 것입니다. 작업 수준의 when
과 규칙 내의 when
을 혼합할 수 없습니다.
관련 주제:
rules:changes
rules:changes
을 사용하여 특정 파일의 변경 사항을 확인하여 파이프라인에 작업을 추가할 때 지정합니다.
키워드 유형: 작업 키워드. 작업의 일부로만 사용할 수 있습니다.
가능한 입력:
rules:changes
의 예시:
파이프라인이 병합 요청 파이프라인인 경우 Dockerfile
을 변경 사항을 확인하십시오.
Dockerfile
에 변경 사항이 있으면 작업을 수동 작업으로 파이프라인에 추가하고, 작업이 트리거되지 않아도 파이프라인이 계속 실행됩니다 (allow_failure: true
).
rules: changes
섹션 당 최대 50개의 패턴 또는 파일 경로를 정의할 수 있습니다.
Dockerfile
에 변경 사항이 없으면 어떤 파이프라인에도 작업을 추가하지 마십시오 (when: never
와 동일함).
rules:changes:paths
rules:changes
를 사용하여 특정 파일이 변경될 때만 작업이 파이프라인에 추가되도록 지정하고, rules:changes:paths
를 사용하여 파일을 지정합니다.
키워드 유형: 작업 키워드. 작업의 일부로만 사용할 수 있습니다.
rules:changes:paths
의 예시:
이 예시에서 두 작업은 동일한 동작을 합니다.
rules:changes:compare_to
rules:changes:compare_to
를 사용하여 rules:changes:paths
에 나열된 파일의 변경 사항을 비교할 대상 ref를 지정합니다.
키워드 유형: 작업 키워드. 작업의 일부로만 사용할 수 있으며 rules:changes:paths
와 함께 사용되어야 합니다.
가능한 입력:
main
, branch1
, 또는 refs/heads/branch1
과 같은 브랜치 이름.
tag1
또는 refs/tags/tag1
과 같은 태그 이름.
2fg31ga14b
와 같은 커밋 SHA.
rules:changes:compare_to
의 예시:
이 예에서 docker build
작업은 Dockerfile
이 refs/heads/branch1
을 기준으로 변경되었고 파이프라인 소스가 병합 요청 이벤트인 경우에만 포함됩니다.
rules:exists
exists
를 사용하여 저장소에 특정 파일이 존재할 때 작업을 실행합니다.
키워드 유형: 작업 키워드. 작업의 일부로만 사용할 수 있습니다.
가능한 입력:
rules:exists
의 예시:
Dockerfile
이 저장소 어디에 있든, job
은 실행됩니다.
추가 세부 정보:
성능상의 이유로, GitLab은 exists
패턴 또는 파일 경로에 대해 최대 10,000번의 확인을 수행합니다. 10,000번째 확인 이후에는 패턴화된 glob은 항상 일치합니다. 다시 말해, exists
규칙은 항상 일치한다고 가정합니다. 이는 10,000개 이상의 파일이 있는 프로젝트이거나 exists
규칙이 10,000번 이상 확인된 경우에도 동일합니다.
rules:exists
섹션 당 최대 50개의 패턴 또는 파일 경로를 정의할 수 있습니다.
exists
는 나열된 파일 중 하나라도 발견되면 true
로 해석됩니다(OR
연산).
rules:allow_failure
수동 작업에도 allow_failure: true
를 사용할 수 있습니다. 파이프라인은 수동 작업의 결과를 기다리지 않고 계속 실행됩니다. 규칙에 따른 allow_failure: false
는 수동 작업이 실행될 때까지 파이프라인을 기다리게 합니다.
키워드 유형: 작업 키워드. 작업의 일부로만 사용할 수 있습니다.
가능한 입력:
true
또는 false
. 정의되지 않은 경우 기본값은 false
입니다.
rules:allow_failure
의 예시:
규칙이 일치하는 경우, 작업은 allow_failure: true
를 가진 수동 작업입니다.
추가 세부 정보:
rules:needs
키워드 유형: 작업별. 작업의 일부로만 사용할 수 있습니다.
가능한 입력:
문자열로 된 작업 이름의 배열.
작업 이름과 선택적으로 추가 속성이 포함된 해시.
특정 조건을 충족하는 경우 작업 needs를 없음으로 설정하려면 빈 배열([]
)을 사용합니다.
rules:needs
예시:
이 예시에서:
파이프라인이 기본 브랜치가 아닌 브랜치에서 실행되면 specs
작업은 build-dev
작업이 필요합니다(기본 동작).
파이프라인이 기본 브랜치에서 실행되고 따라서 규칙이 조건에 일치하면 specs
작업은 대신에 build-prod
작업이 필요합니다.
추가 세부 정보:
rules:variables
키워드 유형: 작업별. 작업의 일부로만 사용할 수 있습니다.
가능한 입력:
VARIABLE-NAME: 값을
형식으로 된 변수 해시.
rules:variables
예시:
rules:interruptible
키워드 유형: 작업별. 작업의 일부로만 사용할 수 있습니다.
가능한 입력:
true
또는 false
.
rules:interruptible
예시:
추가 세부 정보:
stage: .pre
파이프라인에 .pre
또는 .post
단계의 작업만 포함된 경우 파이프라인이 실행되지 않습니다. 다른 단계에 적어도 한 개의 다른 작업이 있어야 합니다.
키워드 유형: 작업의 stage
키워드와 함께만 사용할 수 있습니다.
stage: .pre
예시:
stage: .post
파이프라인에 .pre
또는 .post
단계의 작업만 포함된 경우 파이프라인이 실행되지 않습니다. 다른 단계에 적어도 한 개의 다른 작업이 있어야 합니다.
키워드 유형: 작업의 stage
키워드와 함께만 사용할 수 있습니다.
stage: .post
예시:
추가 세부 정보:
관련 주제:
추가 정보:
build_job
이 실패할 때만 cleanup_build_job
을 실행합니다.
어떤 경우에도 cleanup_job
을 파이프라인의 마지막 단계로 실행합니다.
GitLab UI에서 수동으로 실행할 때 deploy_job
을 실행합니다.
이 예시에서 스크립트는 다음을 실행합니다:
when
예시:
on_success
(기본값): 이전 단계의 작업 중 실패한 작업이 없을 때 또는 allow_failure: true
가 있는 경우에만 작업을 실행합니다.
on_failure
: 이전 단계에서 적어도 한 작업이 실패할 때 작업을 실행합니다. 이전 단계의 allow_failure: true
가 있는 작업은 항상 성공으로 간주됩니다.
never
: 이전 단계의 상태에 관계없이 작업을 실행하지 않습니다. rules
섹션 또는 workflow:rules
에서만 사용할 수 있습니다.
always
: 이전 단계의 상태에 관계없이 작업을 실행합니다. workflow:rules
에서도 사용할 수 있습니다.
가능한 입력:
작업이 실행되는 조건을 구성하기 위해 when
을 사용합니다. 작업 내에서 정의되지 않은 경우 기본값은 when: on_success
입니다.
when
추가 정보:
VAR2
의 결과는 value2 value1
입니다.
VAR3
의 결과는 value3 $VAR1
입니다.
변수:확장
예시:
true
(기본값): 변수는 확장 가능합니다.
false
: 변수는 확장할 수 없습니다.
가능한 입력:
키워드 유형: 글로벌 및 작업 키워드. 전역 수준과 작업 수준에서 사용할 수 있습니다.
expand
키워드를 사용하여 변수를 확장 가능하게 또는 그렇지 않게 구성합니다.
변수:확장
variables:options
의 예시:
문자열 배열.
가능한 입력:
키워드 유형: 글로벌 키워드. 작업 수준 변수에는 사용할 수 없습니다.
options
배열의 문자열 중 하나여야 합니다.
기본 선택 사항입니다.
variables:value
와 함께 사용해야 하며, value
에 정의된 문자열은 다음을 만족해야 합니다:
variables:options
추가 세부정보:
variables:value
의 예시:
문자열.
가능한 입력:
키워드 유형: 글로벌 키워드. 작업 수준 변수에는 사용할 수 없습니다.
variables:value
value
없이 사용하면 수동으로 트리거되지 않은 파이프라인에 해당 변수가 존재하며, 기본값은 빈 문자열(''
)입니다.
추가 세부정보:
variables:description
의 예시:
문자열.
가능한 입력:
키워드 유형: 글로벌 키워드. 작업 수준 변수에는 사용할 수 없습니다.
variables:description
관련 주제:
추가 세부정보:
variables
의 예시:
이름은 숫자, 문자 및 밑줄(_
)만 사용할 수 있습니다. 일부 셸에서는 첫 번째 문자가 문자여야 합니다.
값은 문자열이어야 합니다.
가능한 입력: 변수 이름 및 값 쌍:
키워드 유형: 글로벌 및 작업 키워드. 글로벌 수준과 작업 수준에서 사용할 수 있습니다.
variables
추가 세부 정보:
trigger:forward
의 예시:
yaml_variables
: true
(기본값) 또는 false
. true
인 경우, 트리거 작업에 정의된 변수가 다운스트림 파이프라인에 전달됩니다.
가능한 입력값:
trigger:forward
추가 세부 정보:
이 예시에서, 다음 스테이지의 작업들은 트리거된 파이프라인이 성공적으로 완료될 때까지 기다립니다.
trigger:strategy
의 예시:
이 설정은 파이프라인 실행을 병렬이 아닌 선형으로 만듭니다.
기본 동작과 다른 점은 trigger
작업이 완료되자마자 성공으로 표시되는 것이 아니라는 것입니다.
trigger:strategy
를 사용하여 trigger
작업이 다운스트림 파이프라인이 완료될 때까지 성공으로 표시되기 전까지 기다리도록 강제할 수 있습니다.
trigger:strategy
관련 주제:
다른 브랜치용 trigger:project
의 예시:
trigger:project
의 예시:
가능한 입력값:
키워드 유형: 작업 키워드. 작업의 일부로만 사용할 수 있습니다.
기본적으로, 다중 프로젝트 파이프라인은 기본 브랜치를 대상으로 트리거합니다. 다른 브랜치를 지정하려면 trigger:branch
를 사용하세요.
trigger:project
관련 주제:
trigger:include
의 예시:
하위 파이프라인 구성 파일의 경로.
가능한 입력값:
키워드 유형: 작업 키워드. 작업의 일부로만 사용할 수 있습니다.
trigger:include
when
작업이 실행되는 조건을 구성하기 위해 when
을 사용합니다. 작업 내에서 정의되지 않은 경우 기본값은 when: on_success
입니다.
가능한 입력:
on_success
(기본값): 이전 단계의 작업 중 실패한 작업이 없을 때 또는 allow_failure: true
가 있는 경우에만 작업을 실행합니다.
on_failure
: 이전 단계에서 적어도 한 작업이 실패할 때 작업을 실행합니다. 이전 단계의 allow_failure: true
가 있는 작업은 항상 성공으로 간주됩니다.
never
: 이전 단계의 상태에 관계없이 작업을 실행하지 않습니다. rules
섹션 또는 workflow:rules
에서만 사용할 수 있습니다.
always
: 이전 단계의 상태에 관계없이 작업을 실행합니다. workflow:rules
에서도 사용할 수 있습니다.
when
예시:
이 예시에서 스크립트는 다음을 실행합니다:
build_job
이 실패할 때만 cleanup_build_job
을 실행합니다.
어떤 경우에도 cleanup_job
을 파이프라인의 마지막 단계로 실행합니다.
GitLab UI에서 수동으로 실행할 때 deploy_job
을 실행합니다.
추가 정보:
관련 주제:
을 포함하기 위해 include:template
를 사용하세요.
:
모든 템플릿은 에서 볼 수 있습니다. include:template
와 함께 사용하기 위해 설계된 템플릿은 모두가 아니므로 사용하기 전에 템플릿 설명을 확인하세요.
를 사용할 수 있습니다.
모든 은 공개 사용자로서 컨텍스트 없이 실행되므로, 공개 프로젝트 또는 템플릿만 포함할 수 있습니다. 중첩된 포함의 include
섹션에서 변수를 사용할 수 없습니다.
after_script
를 사용하여 작업의 script
섹션 이후에 실행되는 명령의 배열을 정의합니다. 이는 script_failure
실패 유형이 있는 실패 작업도 포함합니다. after_script
명령은 후에는 실행되지 않습니다.
키워드 유형: 작업 키워드. 작업의 일부로만 사용할 수 있습니다. 또는 에서 사용할 수 있습니다.
여러 줄로 긴 명령어.
.
CI/CD 변수 .
현재 작업 디렉터리는 기본값으로 설정됩니다 (에 따라).
별도의 타임아웃이 적용됩니다. GitLab Runner 16.4 및 이후에는 기본값이 5분이며, 변수로 구성할 수 있습니다. GitLab 16.3 및 이전 버전에서는 타임아웃이 하드코딩되어 5분으로 설정됩니다.
작업이 시간 초과되거나 취소된 경우 after_script
명령은 실행되지 않습니다. .
default
와 함께 모든 작업 이후에 실행할 기본 명령어 배열을 정의합니다.
.
after_script
와 함께 작업 로그를 검토하기 쉽게 만듭니다.
작업 로그 출력을 단순화합니다.
before_script
을 사용하여 각 작업의 script
명령어보다는 실행되지만, 가 복원된 후에 실행되어야 하는 명령어 배열을 정의합니다.
키워드 유형: Job 키워드. 작업의 일부로만 사용하거나 에서만 사용할 수 있습니다.
긴 명령어.
.
CI/CD 변수 .
before_script
에서 지정한 스크립트는 주요 에서 지정한 스크립트와 연결되어 단일 셸에서 함께 실행됩니다.
최상위 수준의 before_script
을 사용하되 default
section에는 사용하지 말아야 합니다. .
.
하여 작업 로그를 쉽게 검토할 수 있습니다.
하여 작업 로그 출력을 단순화합니다.
기본적으로 모든 실패 유형은 작업을 재시도하게 합니다. 또는 을 사용하여 어떤 실패를 재시도할지 선택하세요.
Keyword type: Job keyword. 작업 또는 일부로만 사용할 수 있습니다.
retry:when
을 retry:max
와 함께 사용하여 특정 실패 사례에 대해 작업을 재시도하세요. retry:max
는 와 같이 최대 재시도 횟수이며 0
, 1
, 또는 2
가 될 수 있습니다.
Keyword type: Job keyword. 작업 또는 일부로만 사용할 수 있습니다.
러너가 Docker 이미지를 가져오지 못했을 때. docker
, docker+machine
, kubernetes
.
됨 ci_retry_on_exit_codes
와 함께. 기본적으로 비활성화.
플래그: 자체 호스팅 GitLab에서는 기본적으로 이 기능을 사용할 수 없습니다. 사용하려면 관리자가 할 수 있습니다. ci_retry_on_exit_codes
라는 플래그를 사용하세요.
retry:exit_codes
를 retry:max
와 함께 사용하여 특정 실패 사례에 대해 작업을 재시도하세요. retry:max
는 와 같이 최대 재시도 횟수이며 0
, 1
, 또는 2
가 될 수 있습니다.
Keyword type: Job keyword. 작업 또는 일부로만 사용할 수 있습니다.
변수를 사용하여 작업 실행의 를 지정할 수 있습니다.
에서 소개되었습니다.
rules
는 를 대체하고, 동일한 작업에서 함께 사용할 수 없습니다. 한 작업에서 두 키워드를 구성하면 GitLab에서 key may not be used with rules
오류가 반환됩니다.
여러 키워드를 함께 결합하여 을 만들 수 있습니다.
를 사용하여 서로 다른 작업에서 을 할 수 있습니다.
if
절은 또는 의 값에 따라 평가됩니다. 가 있습니다.
키워드 유형: 작업별 및 파이프라인별. 작업의 동작을 구성하기 위해 작업 부분으로 사용하거나, 와 함께 사용하여 파이프라인 동작을 구성할 수 있습니다.
.
GitLab 14.6 이후에는 할 수 있습니다. rules
의 when
구성이 작업 수준의 when
을 우선합니다.
섹션의 변수와 달리, 규칙 표현식의 변수는 항상$VARIABLE
형식으로 작성됩니다.
rules:if
와 include
를 함께 사용하여 할 수 있습니다.
=~
및 !~
표현식의 오른쪽에 있는 CI/CD 변수는 됩니다.
rules
를 위한 .
.
.
경고: rules: changes
는 브랜치 파이프라인 또는 병합 요청 파이프라인에서만 사용해야합니다. 다른 파이프라인 유형에서도 rules: changes
를 사용할 수 있지만, rules: changes
는 항상 새로운 브랜치 파이프라인이거나 Git push
이벤트가 없는 경우에는 항상 참으로 평가됩니다. 태그 파이프라인, 예약된 파이프라인 및 수동 파이프라인과 같은 파이프라인은 Git push
이벤트가 연결되어 있지 않습니다. 이러한 경우에는 비교할 브랜치를 지정하기 위해 를 사용하십시오.
특정 수의 포함된 배열: - 파일의 경로. GitLab 13.6 이상에서는 를 포함할 수 있습니다. 파일 경로 배열은 또한 에 있을 수 있습니다. - 다음을 위한 와일드카드 경로: - 단일 디렉토리에 대한 경로, 예를 들어 path/to/directory/*
. - 디렉토리와 해당 하위 디렉토리에 대한 와일드카드 경로, 예를 들어 path/to/directory/**/*
. - 동일한 확장자 또는 여러 확장자를 가진 모든 파일을 위한 와일드카드 경로, 예를 들어 *.md
또는 path/to/directory/*.{rb,py,sh}
. - 루트 디렉토리의 파일이나 모든 디렉토리에 대한 와일드카드 경로는 이중 인용 부호로 묶여 있습니다. 예를 들어 "*.json"
또는 "**/*.json"
.
는 하위 키가 없는 rules: changes
와 동일합니다.
추가 세부 정보: - rules: changes
는 와 동일한 방식으로 작동합니다. - Glob 패턴은 Ruby의 및 의 해석과 함께 구현됩니다. - 와 비슷한 규칙을 구현하려면 when: never
를 사용할 수 있습니다. - changes
는 일치하는 파일 중 하나라도 변경되었을 때 true
로 해결됩니다(OR
연산).
관련 주제: - 을 사용할 때 작업이 또는 파이프라인이 예상치 않게 실행될 수 있습니다.
.
rules:changes:paths
는 하위 키가 없는 를 사용하는 것과 동일합니다. 모든 추가 세부 정보와 관련 주제는 동일합니다.
가능한 입력: - 파일 경로의 배열. 시킬 수 있습니다.
되었습니다. 기본적으로 사용 가능한 ci_rules_changes_compare
플래그와 함께.
하며 ci_rules_changes_compare
플래그가 제거되었습니다.
되었습니다.
CI/CD 변수 지원은 되었습니다.
파일 경로 배열. 경로는 프로젝트 디렉토리($CI_PROJECT_DIR
)를 기준으로 상대적이며 직접 외부로 연결할 수 없습니다. 파일 경로에는 glob 패턴과 를 사용할 수 있습니다.
glob 패턴은 Ruby의 와 함께 를 사용하여 해석됩니다(File::FNM_PATHNAME | File::FNM_DOTMATCH | File::FNM_EXTGLOB
).
되었습니다.
rules
에서 를 사용하여 작업이 실패해도 파이프라인을 중지시키지 않도록 허용합니다.
규칙 수준의 rules:allow_failure
는 작업 수준의 를 재정의하며, 특정 규칙이 작업을 트리거할 때만 적용됩니다.
에서 introduce_rules_with_needs
이라는 플래그로 소개되었습니다. 기본적으로 비활성화됩니다.
에서 일반적으로 사용할 수 있게 되었습니다. 기능 플래그 introduce_rules_with_needs
가 제거되었습니다.
needs
를 사용하여 규칙에서 작업의 를 조건에 따라 업데이트합니다. 조건이 규칙과 일치하는 경우 작업의 needs
구성은 규칙의 needs
로 완전히 대체됩니다.
규칙의 needs
는 작업 수준에서 정의된 needs
를 재정의합니다. 재정의된 경우 동작은 과 동일합니다.
규칙의 needs
는 및 을 허용합니다.
에서 도입되었습니다.
된 GitLab 13.10에서.
rules
에서 을 사용하여 특정 조건에 대한 변수를 정의합니다.
에서 도입되었습니다.
interruptible
를 사용하여 규칙에서 특정 조건에 대한 작업의 값을 업데이트합니다.
규칙 수준의 rules:interruptible
은 작업 수준의 을 재정의하며 특정 규칙이 작업을 트리거할 때만 적용됩니다.
GitLab 12.4에서 .
.pre
단계를 사용하여 작업을 파이프라인의 시작에서 실행하도록 설정합니다. .pre
는 항상 파이프라인의 첫 번째 단계입니다. 사용자 정의 단계는 .pre
이후에 실행됩니다. 에서 .pre
을 정의할 필요는 없습니다.
GitLab 12.4에서 .
.post
단계를 사용하여 작업을 파이프라인의 끝에서 실행하도록 설정합니다. .post
는 항상 파이프라인의 마지막 단계입니다. 사용자 정의 단계는 .post
이전에 실행됩니다. 에서 .post
을 정의할 필요는 없습니다.
파이프라인에 작업 및 .pre
단계 작업이 포함되어 있는 경우, 파이프라인이 생성되자마자 모든 작업이 시작됩니다. needs: []
로 시작하는 작업은 단계 구성을 무시하고 즉시 시작됩니다.
보다 동적인 작업 제어를 위해 과 함께 when
을 사용할 수 있습니다.
파이프라인 시작 시기를 조절하기 위해 와 함께 when
을 사용할 수 있습니다.
에는 when:manual
을 와 함께 동일한 작업에서 사용할 수 있습니다. GitLab 13.4 및 이전 버전에서는 함께 사용하면 jobs:#{job-name} when should be on_success, on_failure or always
에러가 발생합니다.
when: manual
의 기본 동작은 allow_failure
가 true
로 변경됩니다. 그러나 when: manual
을 과 함께 사용하면 allow_failure
가 기본적으로 false
로 설정됩니다.
manual
: 작업을 실행합니다.
delayed
: 지정된 기간 동안 시킵니다.
키워드 유형: 작업 키워드. 작업의 일부로 사용할 수 있습니다. 에서도 when: always
및 when: never
를 사용할 수 있습니다.
확장
키워드는 전역 및 작업 수준 variables
키워드와 함께 사용할 수 있습니다. 또는 와 함께 사용할 수 없습니다.
되었으며 기본으로 비활성화된 ci_raw_variables_in_yaml_config
라는 플래그와 함께.
됨.
됨.
됨. 기능 플래그 ci_raw_variables_in_yaml_config
삭제.
이 없는 경우 이 키워드는 효력이 없습니다.
variables:options
를 사용하여 합니다.
에서 도입되었습니다.
없이 사용할 경우 동작은 와 동일합니다.
value
키워드를 사용하여 파이프라인 수준(글로벌) 변수의 값을 정의합니다. 과 함께 사용하면 니다.
에서 도입되었습니다.
description
키워드를 사용하여 파이프라인 수준(글로벌) 변수에 대한 설명을 정의합니다. 됩니다.
에서 도입되었습니다.
는 실행 중에 러너가 자동으로 생성하고 작업에서 사용할 수 있는 변수입니다.
할 수 있습니다.
모든 YAML로 정의된 변수는 연결된 에도 설정됩니다.
YAML로 정의된 변수는 민감한 프로젝트 구성을 위한 것입니다. 민감한 정보는 나 에 저장하세요.
및 는 기본적으로 하류 파이프라인으로 전달되지 않습니다. 이러한 변수를 하류 파이프라인으로 전달하려면 를 사용하세요.
CI/CD 변수 .
글로벌 수준에서 정의된 변수는 와 같은 기타 글로벌 키워드의 입력으로 사용할 수 없습니다. 이러한 변수는 script
, before_script
, after_script
섹션에서 작업 수준 및 과 같은 일부 작업 키워드의 입력에만 사용할 수 있습니다.
variables
를 정의하면 모든 작업에 대한 기본 변수로 작동합니다. 각 변수는 파이프라인이 생성될 때 모든 작업 구성으로 복사됩니다. 작업에 이미 해당 변수가 정의된 경우 합니다.
를 작업에 정의하는 데 variables
를 사용합니다.
trigger:forward
로 다운스트림 파이프라인에 전달된 CI/CD 변수는 를 가집니다. 동일한 이름의 변수가 다운스트림 파이프라인에서 정의된 경우 해당 변수는 전달된 변수에 덮어쓰입니다.
CI/CD 변수 MYVAR = my value
로 :
pipeline_variables
: true
또는 false
(기본값). true
인 경우, 및 이 다운스트림 파이프라인에 전달됩니다.
trigger:forward
를 사용하여 하위 파이프라인과 다중 프로젝트 파이프라인으로 전달할 항목을 지정할 수 있습니다. trigger:forward
로 및 으로 전달되는 항목을 제어할 수 있습니다.
다운스트림 파이프라인의 은 다운스트림 파이프라인 또는 상위 트리거 작업의 상태에 영향을 미치지 않습니다. 선택적인 수동 작업 없이도 다운스트림 파이프라인은 성공적으로 완료될 수 있습니다.
다운스트림 파이프라인의 이 수동 작업으로 인해 대기 상태인 경우, 트리거 작업이 대기 상태임 ()을 나타내며, 기본적으로 나중 단계의 작업들은 트리거 작업이 완료될 때까지 시작하지 않습니다.
만약 다운스트림 파이프라인에 실패한 작업이 있지만 작업이 을 사용한 경우, 다운스트림 파이프라인은 성공적으로 간주되며, 트리거 작업은 성공으로 나타납니다.
.
특정 브랜치, 태그 또는 커밋에 대한 파이프라인 실행을 위해 을 사용할 수도 있으며, 와 인증하기 위해 을 사용합니다. 트리거 토큰은 trigger
키워드와는 다릅니다.
하위 프로젝트의 경로. GitLab 15.3부터는 CI/CD 변수가 , 그러나 는 지원되지 않습니다.
trigger:project
를 사용하여 작업이 “트리거 작업”이라고 선언하고, 을 시작하는 데 사용합니다.
.
trigger:include:artifact
를 사용하여 을 트리거합니다.
trigger:include
를 사용하여 작업이 “트리거 작업”이라고 선언하고, 을 시작하는 데 사용합니다.
키워드 유형: 작업 키워드. 작업의 일부로 사용할 수 있습니다. 에서도 when: always
및 when: never
를 사용할 수 있습니다.
manual
: 작업을 실행합니다.
delayed
: 지정된 기간 동안 시킵니다.
에는 when:manual
을 와 함께 동일한 작업에서 사용할 수 있습니다. GitLab 13.4 및 이전 버전에서는 함께 사용하면 jobs:#{job-name} when should be on_success, on_failure or always
에러가 발생합니다.
when: manual
의 기본 동작은 allow_failure
가 true
로 변경됩니다. 그러나 when: manual
을 과 함께 사용하면 allow_failure
가 기본적으로 false
로 설정됩니다.
보다 동적인 작업 제어를 위해 과 함께 when
을 사용할 수 있습니다.
파이프라인 시작 시기를 조절하기 위해 와 함께 when
을 사용할 수 있습니다.