머지 리퀘스트 파이프라인 문제 해결
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
머지 리퀘스트 파이프라인을 사용할 때 다음과 같은 문제가 발생할 수 있습니다. 머지 리퀘스트에서 중복 파이프라인이 발생하는 경우 파이프라인이 브랜치와 머지 리퀘스트 모두에 대해 동시에 실행되도록 구성되어 있을 수 있습니다.
머지 리퀘스트 파이프라인을 사용할 때 다음과 같은 문제가 발생할 수 있습니다.
브랜치에 푸시할 때 두 개의 파이프라인 발생#
머지 리퀘스트에서 중복 파이프라인이 발생하는 경우 파이프라인이 브랜치와 머지 리퀘스트 모두에 대해 동시에 실행되도록 구성되어 있을 수 있습니다. 파이프라인 구성을 조정하여 중복 파이프라인을 방지하세요.
workflow:rules를 추가하여 브랜치 파이프라인에서 머지 리퀘스트 파이프라인으로 전환할 수 있습니다.
머지 리퀘스트가 브랜치에 열리면 파이프라인은 머지 리퀘스트 파이프라인으로 전환됩니다.
잘못된 CI/CD 구성 파일 푸시 시 두 개의 파이프라인 발생#
머지 리퀘스트의 브랜치에 잘못된 CI/CD 구성을 푸시하면 파이프라인 탭에 두 개의 실패한 파이프라인이 나타납니다. 하나는 실패한 브랜치 파이프라인이고 다른 하나는 실패한 머지 리퀘스트 파이프라인입니다.
구성 구문이 수정되면 더 이상 실패한 파이프라인이 나타나지 않아야 합니다. 구성 문제를 찾아 수정하려면 다음을 사용할 수 있습니다:
머지 리퀘스트 파이프라인이 실패로 표시되지만 최신 파이프라인은 성공한 경우#
단일 머지 리퀘스트의 파이프라인 탭에 브랜치 파이프라인과 머지 리퀘스트 파이프라인이 모두 있을 수 있습니다. 이는 구성에 의한 것이거나 우연에 의한 것일 수 있습니다.
프로젝트에 파이프라인이 성공해야 함이 활성화되어 있고 두 파이프라인 유형이 모두 있는 경우 브랜치 파이프라인이 아닌 머지 리퀘스트 파이프라인이 확인됩니다.
따라서 브랜치 파이프라인 결과에 관계없이 머지 리퀘스트 파이프라인이 실패하면 MR 파이프라인 결과가 실패로 표시됩니다.
그러나:
- 이러한 조건은 강제 적용되지 않습니다.
- 경쟁 조건에 따라 머지 리퀘스트를 차단하거나 통과시키는 데 어떤 파이프라인의 결과가 사용되는지 결정됩니다.
이 버그는 이슈 384927에서 추적됩니다.
An error occurred while trying to run a new pipeline for this merge request.#
이 오류는 머지 리퀘스트에서 파이프라인 실행을 선택했지만 프로젝트에 더 이상 머지 리퀘스트 파이프라인이 활성화되지 않은 경우 발생할 수 있습니다.
이 오류 메시지에 대한 가능한 이유:
-
프로젝트에 머지 리퀘스트 파이프라인이 활성화되어 있지 않고 파이프라인 탭에 나열된 파이프라인이 없으며 파이프라인 실행을 선택합니다.
-
프로젝트에 이전에 머지 리퀘스트 파이프라인이 활성화되어 있었지만 구성이 제거되었습니다. 예를 들어:
- 머지 리퀘스트가 생성될 때 프로젝트에
.gitlab-ci.yml구성 파일에 머지 리퀘스트 파이프라인이 활성화됩니다. - 파이프라인 실행 옵션은 머지 리퀘스트의 파이프라인 탭에서 사용 가능하며, 이 시점에서 파이프라인 실행을 선택해도 오류가 발생하지 않을 수 있습니다.
- 프로젝트의
.gitlab-ci.yml파일이 머지 리퀘스트 파이프라인 구성을 제거하도록 변경됩니다. - 업데이트된 구성을 머지 리퀘스트에 가져오기 위해 브랜치가 리베이스됩니다.
- 이제 파이프라인 구성이 더 이상 머지 리퀘스트 파이프라인을 지원하지 않지만 파이프라인 실행을 선택하여 머지 리퀘스트 파이프라인을 실행합니다.
- 머지 리퀘스트가 생성될 때 프로젝트에
파이프라인 실행이 사용 가능하지만 프로젝트에 머지 리퀘스트 파이프라인이 활성화되지 않은 경우 이 옵션을 사용하지 마세요. 커밋을 푸시하거나 브랜치를 리베이스하여 새 브랜치 파이프라인을 트리거할 수 있습니다.
Merge blocked: pipeline must succeed. Push a new commit that fixes the failure 메시지#
이 메시지는 머지 리퀘스트 파이프라인, 병합 결과 파이프라인 또는 머지 트레인 파이프라인이 실패하거나 취소된 경우 표시됩니다. 브랜치 파이프라인이 실패할 때는 이런 일이 발생하지 않습니다.
머지 리퀘스트 파이프라인 또는 병합 결과 파이프라인이 취소되거나 실패한 경우 다음을 수행할 수 있습니다:
- 머지 리퀘스트의 파이프라인 탭에서 파이프라인 실행을 선택하여 전체 파이프라인을 다시 실행합니다.
- 실패한 job만 재시도. 전체 파이프라인을 다시 실행하는 경우 이것은 필요하지 않습니다.
- 실패를 수정하는 새 커밋을 푸시합니다.
머지 트레인 파이프라인이 실패한 경우 다음을 수행할 수 있습니다:
- 실패를 확인하고
/merge빠른 작업을 사용하여 즉시 머지 리퀘스트를 다시 트레인에 추가할 수 있는지 결정합니다. - 머지 리퀘스트의 파이프라인 탭에서 파이프라인 실행을 선택하여 전체 파이프라인을 다시 실행하고 머지 리퀘스트를 다시 트레인에 추가합니다.
- 실패를 수정하는 커밋을 푸시한 다음 머지 리퀘스트를 다시 트레인에 추가합니다.
실패 없이 머지 리퀘스트가 머지되기 전에 머지 트레인 파이프라인이 취소된 경우 다음을 수행할 수 있습니다:
- 다시 트레인에 추가합니다.
