CI/CD YAML 문법 참조
CI/CD YAML 문법 참조 (CI/CD YAML syntax reference)
이 문서는 GitLab .gitlab-ci.yml 파일의 구성 옵션을 정리한 참조예요. .gitlab-ci.yml은 파이프라인을 이루는 CI/CD job을 정의하는 파일입니다.
출처: 문서
본문
-
티어(Tier): Free, Premium, Ultimate
-
제공 방식(Offering): GitLab.com, GitLab Self-Managed, GitLab Dedicated
-
이미 기본 CI/CD 개념에 익숙하다면, 기본 또는 복잡한 파이프라인을 보여주는 튜토리얼을 따라 나만의
.gitlab-ci.yml파일을 만들어 보세요. -
예시 모음은 GitLab CI/CD 예시를 참고하세요.
-
엔터프라이즈에서 쓰는 큰
.gitlab-ci.yml파일을 보려면gitlab의.gitlab-ci.yml파일을 확인해 보세요.
.gitlab-ci.yml 파일을 편집할 때는 CI Lint 도구로 검증할 수 있어요.
GitLab CI/CD 구성은 YAML 형식을 사용하므로, 특별한 언급이 없는 한 키워드의 순서는 중요하지 않아요.
더 동적인 파이프라인 구성 옵션에는 CI/CD 표현식을 사용하세요.
키워드(Keywords)
GitLab CI/CD 파이프라인 구성은 다음을 포함해요:
- 파이프라인 동작을 구성하는 전역 키워드(Global keywords):
| 키워드 | 설명 |
|---|---|
default |
job 키워드의 사용자 지정 기본값. |
include |
다른 YAML 파일에서 구성 가져오기. |
stages |
파이프라인 스테이지의 이름과 순서. |
variables |
파이프라인의 모든 job에 대한 기본 CI/CD 변수 정의. |
workflow |
어떤 유형의 파이프라인이 실행될지 제어. |
| 키워드 | 설명 |
|---|---|
spec |
외부 구성 파일에 대한 사양 정의. |
| 키워드 | 설명 |
|---|---|
after_script |
job 이후에 실행되는 명령 집합 재정의. |
allow_failure |
job 실패 허용. 실패해도 파이프라인은 실패하지 않음. |
artifacts |
성공 시 job에 첨부할 파일·디렉터리 목록. |
before_script |
job 이전에 실행되는 명령 집합 재정의. |
cache |
이후 실행 사이에 캐시할 파일 목록. |
coverage |
주어진 job의 코드 커버리지 설정. |
dast_configuration |
job 수준에서 DAST 프로파일의 구성 사용. |
dependencies |
아티팩트를 가져올 job 목록을 제공해 특정 job에 전달되는 아티팩트 제한. |
environment |
job이 배포하는 환경의 이름. |
extends |
이 job이 상속하는 구성 항목. |
identity |
ID 페더레이션으로 서드파티 서비스에 인증. |
image |
Docker 이미지 사용. |
inherit |
모든 job이 상속하는 전역 기본값 선택. |
interruptible |
더 새로운 실행에 의해 중복될 때 job을 취소할 수 있는지 정의. |
manual_confirmation |
수동 job의 사용자 지정 확인 메시지 정의. |
needs |
스테이지 순서보다 일찍 job을 실행. |
pages |
job 결과를 GitLab Pages에 업로드. |
parallel |
job 인스턴스를 병렬로 몇 개 실행할지. |
release |
러너가 릴리스를 생성하도록 지시. |
resource_group |
동시 실행을 제한하는 resource group. |
retry |
실패한 job을 몇 번이나 자동 재시도할지. |
rules |
job을 실행하거나 건너뛰는 조건 목록. |
script |
러너가 실행하는 셸 스크립트. |
secrets |
외부 secrets provider에서 CI/CD secret 노출. |
services |
Docker 서비스 이미지 사용. |
stage |
job이 실행되는 스테이지 정의. |
tags |
job을 실행할 러너 선택. |
timeout |
job 실행 최대 시간 정의. |
trigger |
다운스트림 파이프라인 또는 API 정의. |
variables |
job 수준의 CI/CD 변수 정의. |
when |
job 실행 시기 제어(조건). |
- 더 이상 권장되지 않는 더 이상 사용하지 않는 키워드(Deprecated keywords).
전역 키워드(Global keywords)
일부 키워드는 job 안에 정의되지 않아요. 이 키워드들은 파이프라인 동작을 제어하거나 추가 파이프라인 구성을 가져옵니다.
default
일부 키워드에 전역 기본값을 설정할 수 있어요. 각 기본 키워드는 모든 job에 복사되는데, job 자신이 그 키워드를 정의하면 job의 정의가 우선합니다.
include
include 키워드로 다른 YAML 파일의 구성을 가져올 수 있어요. 로컬 파일, 템플릿, 원격 파일, 하위 프로젝트의 파일 등을 포함할 수 있습니다. 이렇게 구성 파일을 분리하면 파이프라인 정의를 재사용하고 모듈화할 수 있어요.
stages
파이프라인에서 사용할 스테이지의 이름과 순서를 정의해요. 스테이지가 정의되지 않으면 기본값으로 build, test, deploy가 사용됩니다. 각 스테이지의 job은 그 스테이지가 시작되기 전에 이전 스테이지의 job이 성공해야 실행돼요.
workflow
파이프라인의 시작 조건을 제어해요. workflow:rules를 사용하면 어떤 파이프라인 유형(푸시, MR, 예약, 태그 등)이 생성될지 결정할 수 있습니다.
variables
파이프라인의 모든 job에 적용되는 기본 CI/CD 변수를 정의해요. job 자신이 같은 이름의 변수를 정의하면 job의 변수가 우선합니다.
헤더 키워드(Header keywords)
spec
외부 구성 파일에 대한 사양을 정의해요. 주로 include로 가져오는 외부 YAML 파일의 형식과 처리를 지정하는 데 사용됩니다.
job 키워드 상세
원문 문서는 after_script, artifacts, cache, default, image, environment, rules, services, variables, when, trigger, needs, parallel, retry, extends, inherit, secrets, identity, pages, release 등 각 job 키워드에 대해 상세한 설명과 실제 YAML 예시를 제공해요. 각 키워드의 정확한 문법, 허용된 하위 키워드, 예시 구성은 위 키워드 테이블의 링크에서 확인할 수 있습니다.
또한 원문은 variables 키워드의 고급 동작(변수 확장, 우선순위, 표현식 사용 등)과 함께, 파이프라인 구성에서 반복되는 패턴을 줄여주는 default·extends·include 조합 사용법을 폭넓게 다룹니다.