GitLab CI/CD 파이프라인의 핵심인 .gitlab-ci.yml
파일은 프로젝트의 빌드, 테스트, 배포 과정을 정의합니다. 이 파일을 효율적으로 관리하고 유지 보수하려면, GitLab의 다양한 문법과 YAML 기능을 적절히 활용해야 합니다. 이 글에서는 .gitlab-ci.yml
파일의 유지 보수성을 높이는 5가지 핵심 방법을 소개하겠습니다.
include
사용한 파일 분할
include
키워드는 GitLab CI/CD에서 파이프라인 설정을 여러 파일로 분할해 관리하는 기능입니다. 이 키워드를 사용해 복잡한 파이프라인을 여러 파일로 나눠 정의하면 설정 파일의 가독성과 유지 보수성을 크게 향상할 수 있습니다.
include
사용법
include
키워드는 .gitlab-ci.yml
파일에서 다른 YAML 파일을 파이프라인에 포함하는 데 사용됩니다. 이 키워드를 사용 하면 로컬 파일, 원격 파일, 다른 프로젝트의 파일을 가져올 수 있습니다. 그 결과, 파이프라인 구성의 모듈화와 재사용성을 개선할 수 있습니다. 구체적인 사용법을 살펴보겠습니다.
로컬 파일 포함
이는 프로젝트 내의 다른 YAML 파일을 포함하는 가장 간단하고 직접적인 방법입니다. 프로젝트의 루트 디렉터리를 기준으로 포함할 파이프라인 파일의 상대 경로를 아래와 같이 지정합니다.
# .gitlab-ci.yml
include:
# Local 파일 포함
- local: "workflow/workflow.gitlab-ci.yml"
- local: "template/build/build.gitlab-ci.yml"
원격 파일 포함
GitLab에서는 원격 YAML 파일도 포함할 수 있습니다. 이 방법은 공용 템플릿이나 외부 리소스를 사용할 때 유용합니다. 아래 예시를 참고하세요.
# .gitlab-ci.yml
include:
# Remote 파일 포함
- remote: 'https://gitlab.com/chad_infograb/pipeline-template/-/raw/main/template/test/test.gitlab-ci.yml'
원격 파일을 remote
로 포함할 때 브라우저에서 파일을 보는 Blob URL이 아닌, 파일 원본 내용을 그대로 표시하는 Raw URL을 사용해야 합니다.

다른 프로젝트 파일 포함
같은 GitLab 인스턴스 내에 있는 다른 프로젝트의 YAML 파일도 포함할 수 있습니다. 아래 예시를 참고하세요.
# .gitlab-ci.yml
include:
# Project 파일 포함 (다른 GitLab 프로젝트의 파일)
- project: "infograb/personal/chad/poc/pipeline-template"
file:
- "/template/deploy/deploy.gitlab-ci.yml"
ref: main
위 예시에서는 infograb/personal/chad/poc/pipeline-template
프로젝트의 main
브랜치에 있는 deploy.gitlab-ci.yml
파일을 현재 프로젝트의 CI/CD 파이프라인에 포함합니다.
include
와 inputs
사용법
include
키워드와 함께 inputs
키워드를 사용하면 포함된 파일에 매개변수를 전달해 더 유연하게 설정할 수 있습니다. 아래 예시를 참고하세요.
# .gitlab-ci.yml
include:
# Local 파일 포함
- local: 'workflow/workflow.gitlab-ci.yml'
inputs:
default_branch: main
위 예시에서는 workflow/workflow.gitlab-ci.yml
파일을 포함하면서 default_branch
변숫값을 main
으 로 설정합니다.
inputs
키워드를 사용하려면 include
대상 파일에 아래와 같이 spec
섹션을 추가해야 합니다.
# workflow/workflow.gitlab-ci.yml
# Input spec 정의
spec:
inputs:
default_branch:
description: "The default branch name to use for workflow rules"
type: string
default: main
---
# Workflow 설정
...(중략)...
!reference
와 extends
사용한 파이프라인 상속
!reference
키워드와 extends
키워드는 GitLab CI/CD에서 설정 재사용성을 높이는 강력한 도구입니다. 두 키워드를 활용하면 파이프라인 구성을 모듈화하고 중복을 최소화해 복잡한 파이프라인도 쉽게 관리하고 확장할 수 있습니다.