InfoGrab Docs

병합 결과 파이프라인

머지 전에 소스 브랜치와 대상 브랜치의 코드를 결합하여 테스트하는 병합 결과 파이프라인을 설명합니다.

병합 결과 파이프라인은 소스 브랜치와 대상 브랜치의 코드를 결합한 임시 병합 커밋을 테스트합니다. 이 커밋은 두 브랜치 중 어디에도 존재하지 않지만 파이프라인 세부 정보에서 확인할 수 있습니다. 이 접근 방식은 변경 사항이 최신 대상 브랜치의 코드와 함께 작동하는지 확인하고, 머지 전에 통합 문제를 찾아내며, 다른 파일의 변경 사항이 함께 작동하는지 확인하는 데 도움이 됩니다. 대상 브랜치에 소스 브랜치의 변경 사항과 충돌하는 변경 사항이 있을 때 병합 결과 파이프라인을 실행할 수 없습니다. 이 경우 GitLab은 표준 머지 리퀘스트 파이프라인을 실행합니다. 병합 결과 파이프라인 활성화 # 전제 조건: 프로젝트에 대한 Maintainer 또는 Owner 권한이 있어야 합니다. .gitlab-ci.yml 파일이 머지 리퀘스트 파이프라인 에 대해 구성되어 있어야 합니다. 프로젝트가 GitLab에 호스팅되어 있어야 합니다(GitHub 또는 Bitbucket과 같은 외부 저장소가 아닌). 프로젝트에서 병합 결과 파이프라인을 활성화하려면: 상단 바에서 검색 또는 이동 을 선택하고 프로젝트를 찾습니다. 설정 > 머지 리퀘스트 를 선택합니다. 머지 옵션 아래에서 병합 결과 파이프라인 활성화 를 선택합니다. 변경 사항 저장 을 선택합니다. Warning .gitlab-ci.yml 파일에서 머지 리퀘스트 파이프라인을 구성하지 않고 이 설정을 활성화하면 머지 리퀘스트가 해결되지 않은 상태로 멈추거나 파이프라인이 삭제될 수 있습니다. 문제 해결 # 병합 결과 파이프라인을 사용할 때 다음과 같은 문제가 발생할 수 있습니다. rules:changes:compare_to 를 사용할 때 job 또는 파이프라인이 예상치 않게 실행됨 # 머지 리퀘스트 파이프라인과 함께 rules:changes:compare_to 를 사용할 때 job 또는 파이프라인이 예상치 않게 실행될 수 있습니다. 이 문제는 병합 결과 파이프라인이 비교의 기반으로 임시 병합 커밋을 사용하기 때문에 발생합니다. 이 커밋에는 머지 리퀘스트 브랜치와 대상 브랜치 모두의 변경 사항이 포함되어 있어 규칙이 예상치 않게 트리거될 수 있습니다. 예를 들어 머지 리퀘스트가 src/feature.js 를 추가하고 대상 브랜치에 src/utils.js 가 포함되어 있으면 임시 병합 커밋에 두 파일이 모두 포함됩니다. rules:changes:compare_to: main 이 있는 규칙은 기능 파일만이 아닌 두 변경 사항을 모두 감지하여 변경 사항에만 실행되어야 하는 job을 트리거할 수 있습니다. 이 문제를 해결하려면: 기본 비교 동작을 사용하려면 compare_to 매개변수를 제거합니다. 변경 규칙에서 더 구체적인 파일 경로 패턴을 사용합니다. compare_to 없이 rules:changes 를 사용하는 것을 고려합니다. 성공한 병합 결과 파이프라인이 실패한 브랜치 파이프라인을 재정의함 # 파이프라인이 성공해야 함 설정 이 활성화된 경우 실패한 브랜치 파이프라인이 무시되는 상황이 발생할 수 있습니다. 이 문제는