InfoGrab DocsInfoGrab Docs

머지 리퀘스트 파이프라인

GitLab CI/CD에서 머지 리퀘스트 파이프라인을 사용해 변경 사항을 효율적으로 테스트하고, 타깃 job을 실행하며, 머지 전에 코드 품질을 개선하는 방법을 설명합니다.

머지 리퀘스트의 소스 브랜치를 변경할 때마다 파이프라인이 실행되도록 구성할 수 있습니다. 이러한 유형의 파이프라인을 머지 리퀘스트 파이프라인이라고 합니다. 다음과 같은 경우 이 파이프라인이 실행됩니다. 커밋이 하나 이상 있는 소스 브랜치에서 새 머지 리퀘스트를 생성하는 경우 머지 리퀘스트의 소스 브랜치에 새 커밋을 푸시하는 경우 머지 리퀘스트의 Pipelines 탭으로 이동해 Run pipeline 을 선택하는 경우 머지 리퀘스트 파이프라인은 다음과 같은 특징이 있습니다. 대상 브랜치의 내용은 무시하고 소스 브랜치의 내용에서만 실행됩니다. 파이프라인 목록에 merge request 레이블을 표시합니다. 소스 브랜치와 대상 브랜치를 병합한 결과를 테스트하는 파이프라인을 실행하려면 병합 결과 파이프라인 을 사용합니다. 사전 요구 사항 # 머지 리퀘스트 파이프라인을 사용하려면 다음이 필요합니다. 프로젝트의 .gitlab-ci.yml 파일에 CI_PIPELINE_SOURCE == "merge_request_event" 와 일치하는 job 규칙 또는 workflow 규칙이 포함되어 있어야 합니다. 머지 리퀘스트 파이프라인을 실행하려면 소스 프로젝트에 대해 Developer, Maintainer, Owner 권한이 있어야 합니다. 리포지터리가 외부 리포지터리 가 아닌 GitLab 리포지터리여야 합니다. 머지 리퀘스트 파이프라인 구성 # 머지 리퀘스트 파이프라인을 구성하려면 CI_PIPELINE_SOURCE 가 merge_request_event 와 같을 때 실행되도록 .gitlab-ci.yml 파일에서 job을 구성해야 합니다. Note include: (예: include:component )에 정의된 규칙은 이 요구 사항을 충족하지 않습니다. .gitlab-ci.yml 에 일치하는 rules: 또는 workflow: rules 를 직접 정의해야 합니다. 개별 job은 rules 로 구성할 수 있고, 파이프라인 전체를 제어하려면 workflow: rules 를 사용할 수 있습니다. 개별 job 구성 # 머지 리퀘스트 파이프라인에서 실행되도록 개별 job을 구성하려면 rules 키워드를 사용합니다. 예를 들면 다음과 같습니다. job1: script: - echo "This job runs in merge request pipelines" rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" 파일 변경 사항을 기준으로 job 실행 시점을 제어할 수도 있습니다. test: script: - echo "This job always runs in merge request pipelines" rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" lint: script: - echo "This job runs only when JavaScript files change" rules: - if: $CI_PIPELINE_SOURCE == "merge_reques