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 파이프라인 구성은 다음을 포함해요:

키워드 설명
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 실행 시기 제어(조건).

전역 키워드(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 조합 사용법을 폭넓게 다룹니다.

더 알아보기 (Learn more)