이 글에는 GitLab CI/CD에 대한 개념과 사용 방법을 설명합니다. GitLab CI/CD 워크플로우, 파이프라인, Job, Variables, Environments, Runners, Artifacts, Cache 등에 대한 설명이 포함되어 있습니다.
CI = 지속적 통합 (Continuous Integration)
CD = 지속적 전달 (Continuous Delivery)
CD = 지속적 배포 (Continuous Deployment )
CI/CD
의 최상위 구성요소
.gitlab-ci.yml
파일의 가장 기본적인 요소, Job은 러너가 실행해야 하는 명령 모음이다. 결과물이 무엇인지 실시간으로 볼수있어 개발자가 해당 Job이 실패한 이유를 이해할 수 있다.
Job 정의조건
CI/CD
변수들을 사용하여 다음을 수행할수 있다
.gitlab-ci.yml
파일에 값을 하드 코딩하는 것을 방지➕ GitLab 에서 제공하는 사전 정의된 CI/CD 변수들을 불러와서 사용할수 있다.
ex )
📌사전 정의된 변수 사용
job1:
stage: test
script:
- echo "$CI_JOB_STAGE"
📌.gitlab-ci.yml
에 정의된 변수 사용
variables:
TEST_VAR: "All jobs can use this variable's value"
job1:
variables:
TEST_VAR_JOB: "Only job1 can use this variable's value"
script:
- echo "$TEST_VAR" and "$TEST_VAR_JOB"
**.gitlab-ci.yml
에 정의된 코드를 실행**
러너는 관리자가 생성하며 GitLab UI 에 표시된다.
러너 타입들
.gitlab-ci.yml
파일을 리포지토리의 루트에 생성한다.gitlab-ci.yml
생성GitLab CI/CD 에 대한 특정 지침을 yaml 파일로 구성한 것이다
.gitlab-ci.yml
에서는 다음의 관한 내용을 정의한다
stages:
- develop
- production
develop:
stage: develop // (개발서버)
script:
- node deploy.js develop
only:
- develop // develop 브런치로 적용
tags:
- common
environment: develop
production: // (운영서버)
stage: production
script:
- node deploy.js master
only:
- tags // master 브런치의 최종 푸시된 태그로 적용
tags:
- common
environment: master
만약 feature 에서의 브런치를 QA를 위해 개발서버에 적용하고 싶을 경우,
only:
- feature/test123
위 같이 적용하면 개발서버에서 test123이라는 브런치가 적용된다.