CICD Pipeline이란 무엇인가
- Pipeline
- 구성요소 1) Job: 파이프라인에서 처리되어야 하는 것 (ex) 컴파일, 코드 테스트, ..)
- 구성요소 2) Stage: Job 실행 시점을 정의한 것
- 빌드, 테스트, 배포 등의 각 단계를 주도하는 요소
- CI/CD pipeline
- 빌드, 테스트, 배포 등의 단계를 자동화한 파이프라인
- 장점
- 휴먼 에러 감소
- 프로세스 간소화
- 빠른 병합 및 코드 품질 향상
- 코드 현상황 공유 가능
- 프로덕션으로 만들기 전에 문제 인지 가능
GitLab Pipeline 용어 정리
- commit: 코드 변화
- pipeline: job이 포함된 각 stage들의 모음 (job < stage < pipeline)
- job: 실행되어야 하는 것 ex) 컴파일, 테스트, 등
- stage: job들이 언제 실행되어야 하는지 정의한 것
- job들을 포함하고 있는 하나의 단계로 키워드를 가지고 있다. (ex) build - 빌드에 필요한 job들로 구성된 stage, deploy - 배포에 필요한 job들로 구성된 stage), stage에 포함된 job들을 병렬적으로 실행된다. 프로젝트 루트에 위치한 .gitlab-ci.yml 파일에서 설정한다. (참고로 나는 .yml 확장자를 어떻게 읽나 고민했었는데 다른 개발자 분들이 '야믈' 이라고 발음하시더라.. ㅎ,.ㅎ)
- runner: 각각의 job들을 실행시킬 수 있는 agent
Pipeline as code (.gitlab-ci.yml)
- git과 같은 소스코드를 통해 배포 파이프라인을 정의한 것을 pipeline as code라고 한다.
- 파이프라인에서 수행할 stages, job, action을 정의한다.
- 파일은 각 브랜치의 소스코드 파일처럼 버전화하여 관리할 수 있다.
- gitlab-ci.yml 파일과 같이 파이프라인을 코드로 작성하는 것에 대한 이점
- 이전 버전으로 돌리거나 코드 트랙킹 등 버전 관리가 용이하다.
- 소스코드의 변화를 추적하기 쉽다.
- 여러 팀원들의 개선, 제안, 업데이트 등과 같이 협업하기 좋다.
- 템플릿화된 파이프라인 코드를 공유하거나 import해서 사용할 수 있다.
- built-in lint 툴이 있어서 yaml 파일의 유효성을 보장할 수 있다.
GitLab CI/CD 파이프라인 설정하기
- gitlab에서는 30개 이상의 프로그래밍언어/프레임워크를 위한 파이프라인 템플릿을 제공한다.
References
'기술 > 개발 도구' 카테고리의 다른 글
Git) git push 실패 - remote: Invalid username or password.fatal: Authentication failed for <private repository> 해결 (0) | 2022.07.21 |
---|---|
VSCode) VSCode 업데이트 후 JAVA/Spring Boot 실행 오류 (0) | 2022.04.26 |
Git) Git-flow 알아보기 (0) | 2022.01.07 |
Git) 특정 파일이 gitignore 적용되지 않을 때 (0) | 2021.12.23 |
VSCode) VSCode에서 JAVA System.out.println 단축키 사용하기 (0) | 2021.07.19 |