본문 바로가기
BACKEND/DevOps

220628 화 CI / CD 파이프라인 구성 (GitLab)

by 또야또야 2022. 6. 28.
반응형

CI / CD 파이프라인 (GitLab)

파이프라인은 지속적 통합(CI), 제공(CD), 배포(CD) 의 최상위 구성요소입니다.

파이프라인 구성

파이프라인은 다음과 같이 구성됩니다.

  • Jobs :: 수행할 작업을 정의합니다. 코드를 컴파일하거나 테스트하는 작업입니다.
  • Stages :: 작업 실행 시기를 정의하는 단계입니다. [코드를 컴파일하는 단계] 이후에 테스트를 실행하는 단계입니다.

jobs는 runner 에 의해 실행됩니다. 충분한 runners 가 있다면 동일한 stage 의 여러개의 작업이 동시에 실행됩니다.

한 단계의 모든 jobs 가 성공하면 파이프라인이 다음 단계로 이동합니다.

만약 특정 단계에서 job 이 실패하면 일반적으로 다음 stage가 실행되지 않고 파이프라인이 종료됩니다.

일반적으로 파이프라인은 자동으로 실행되며 일단 생성되면 특별한 개입이 필요하지 않습니다. 그러나 파이프라인과 수동으로 상호 작용할 수도 있습니다.

일반적인 파이프라인은 4 개의 stage 로 구성되는데, 아래와 같은 순서로 실행됩니다 :

  • build stage :: compile 이라 불리는 job 을 가집니다.
  • test stage :: test1test2 라 불리는 job 두개를 가집니다.
  • staging stage :: deploy-to-stage 라 불리는 job 을 가집니다.
  • production stage :: deploy-to-prod 라 불리는 job 을 가집니다.

파이프라인 종류

파이프라인은 많은 다른 방법으로 설정될 수 있습니다.

  • Basic pipelines : 기본 파이프라인은 각 stage 에서 모든 것을 동시에 실행하고 다음 stage 를 수행합니다.
  • DAG(Directed Asyclic Graph Pipeline) : DAG 파이프라인은 job 간의 관계를 기반으로 하며 기본 파이프라인보다 더 빠르게 실행할 수 있습니다.
  • Merge request pipelines : MR 파이프라인은 모든 커밋이 아닌 병합 요청에 대해서만 실행됩니다.
  • Merged result piplines : 소스 브랜치가 이미 목표 브랜치에 머지 된 상태의 MR 파이프라인입니다.
  • Merge trains : Merged Result 파이프라인을 사용하여 머지 큐(대기열)에 넣습니다.
  • Parent-child pipelines : 복잡한 파이프라인을 하나의 부모 파이프라인으로 분해하여 여러 자식 하위 파이프라인을 제어할 수 있으며, 모두 동일한 프로젝트에서 동일한 SHA로 실행됩니다. 이 파이프라인 아키텍처는 일반적으로 모노 레포에 사용됩니다.
  • Multi-project pipelines : 서로 다른 프로젝트를 위한 파이프라인을 함께 결합합니다.

파이프라인 설정

파이프라인과 jobs 와 stage 는 각 프로젝트의 CI/CD 파이프라인 구성 파일에 정의됩니다.

  • Jobs 는 기본 설정(configuration) 컴포넌트 입니다.
  • stage 는 stages 키워드를 사용하여 정의됩니다.

CI 파이프라인 파일의 구성 목록은 GitLab CI/CD 파이프라인 구성 참조를 참조하십시오.

GitLab UI를 통해 파이프라인을 구성할 수도 있습니다.

반응형

댓글