[Gitlab] Gitlab CI/CD 파이프라인
이전 포스팅에서 github의 Action에 대해서 포스팅 한 적이 있었다.
github Action은 Git 리포지토리에서 워크 플로우를 구성하여, CI/CD를 포함하여 원하는 작업을 수행하고 자동화하여 실행하는 툴이다.
Gitlab에서도 github action과 같은 역할을 하는 gitlab CI/CD를 사용할 수 있다.
Gitlab CI/CD는 gitlab에서 제공하는 CI/CD 도구다.
이를 통해 개발자는 코드 변경 사항을 자동으로 테스트하고 배포할 수 있다.
Gitlab CI/CD의 주요 구성 요소는 다음과 같다.
Gilab Runner | CI/CD 작업을 실행하는 에이전트다. 다양한 환경에서 실행할 수 있으며, Docker, Shell, K8s 등의 실행 환경을 지원한다. |
.gitlab-ci.yml | CI/CD 파이프라인을 정의하는 설정 파일이다. 파이프라인에서 실행 할 단계, 작업, 스테이지 및 환경 변수 등을 설정한다. |
파이프라인 | 여러 작업을 단계별로 실행하는 프로세스다. 각 단계는 특정 작업을 수행하며, 성공적으로 완료되면 다음 단계로 넘어간다. |
잡(Jobs) | 파이프라인 내에서 실행되는 개별 작업이다. 예를 들어, 코드 빌드, 테스트 실행, 배포 등의 작업이 포함된다. |
스테이지(Stages) | 여러 개의 잡을 그룹화하여 순차적으로 실행할 수 있도록 하는 단계다. 예를 들어 build, test, deploy와 같은 스테이지를 설정할 수 있다. |
GitLab CI/CD 파이프라인 생성하기
파이프라인을 만들고 실행하기 위해선 다음과 같은 단계가 필요하다.
1. 작업을 진행할 Gitlab Runner가 있는지 확인한다. 만약 러너가 없다면 로컬 머신에 Gitlab Runner를 설치 후(https://docs.gitlab.com/runner/install/) 프로젝트에 대한 러너를 등록한다.
2. `.gitlab-ci.yml` 파일을 repository 루트 경로에 생성한다. 해당 파일을 저장소에 커밋하면 러너가 작업을 실행하고, 작업 결과는 파이프라인에 표시된다.
gitlab-ci.yml 파일 정의
`.gitlab-ci.yml` 파일을 생성했으면, 해당 파일에 러너가 실행해야 하는 작업의 구조와 순서를 정의한다.
해당 파일의 문법은 아래 링크에서 확인할 수 있다.
아래 예에서는 `build-job`, `test-job1`, `test-job2`, `deploy-prod` 4개의 작업을 보여준다.
명령에 나열된 주석은 작업을 볼 때 UI에 표시된다.
build-job:
stage: build
script:
- echo "Hello, $GITLAB_USER_LOGIN!"
test-job1:
stage: test
script:
- echo "This job tests something"
test-job2:
stage: test
script:
- echo "This job tests something, but takes more time than test-job1."
- echo "After the echo commands complete, it runs the sleep command for 20 seconds"
- echo "which simulates a test that runs 20 seconds longer than test-job1"
- sleep 20
deploy-prod:
stage: deploy
script:
- echo "This job deploys something from the $CI_COMMIT_BRANCH branch."
environment: production
해당 파일이 커밋되면 파이프라인이 시작되고 파일에서 정의한 작업이 실행된다.
파이프라인 및 작업 상태 확인하기
1. 빌드 > 파이프라인으로 이동하면, 3단계의 파이프라인이 표시되어야 한다.
2. 파이프라인 ID를 선택하여 파이프라인을 확인할 수 있다.
3. 작업 이름을 선택하여 작업의 세부 정보를 확인할 수 있다.
이제 사용 사례와 환경에 맞게 Gitlab CI/CD를 구현 할 수 있다. 다양한 예시는 아래 링크에서 확인이 가능하다.
참고
https://docs.gitlab.com/ee/topics/build_your_application.html
'💽 CICD > Git' 카테고리의 다른 글
[Gitlab] Runner 구성하기 (0) | 2025.01.16 |
---|---|
[Gitlab] Gitlab CI/CD 변수 (0) | 2025.01.10 |
[Git] 폴더, 파일 이름 변경 (0) | 2024.10.15 |
[Git] 원격 저장소와 로컬 저장소의 소스 코드 일치 시키기 (0) | 2024.09.06 |
[Git] Git Squash로 커밋 정리하기 (1) | 2024.09.05 |