Merge Request 파이프라인 문제 해결

Merge Request 파이프라인을 사용할 때 다음과 같은 문제가 발생할 수 있습니다.

브랜치로 푸시할 때 두 개의 파이프라인

Merge Request에서 중복된 파이프라인을 얻는 경우, 파이프라인이 두 브랜치와 Merge Request에 대해 동시에 실행되도록 구성되었을 수 있습니다. 중복된 파이프라인을 피하려면 파이프라인 구성을 조정하십시오. 중복된 파이프라인을 피하는 방법을 참조하십시오.

브랜치 파이프라인을 Merge Request 파이프라인으로 전환하려면 workflow:rules를 추가할 수 있습니다. 브랜치에서 Merge Request이 열리면 파이프라인이 Merge Request 파이프라인으로 전환됩니다.

유효하지 않은 CI/CD 구성 파일을 푸시할 때 두 개의 파이프라인

Merge Request의 브랜치에 유효하지 않은 CI/CD 구성을 푸시하는 경우, 파이프라인 탭에 두 개의 실패한 파이프라인이 나타납니다. 하나는 실패한 브랜치 파이프라인이고, 다른 하나는 실패한 Merge Request 파이프라인입니다.

구성 구문이 수정되면 더 이상 실패한 파이프라인이 나타나지 않아야 합니다. 구성 문제를 찾고 수정하려면 다음을 사용할 수 있습니다:

Merge Request의 파이프라인이 실패로 표시되지만 최신 파이프라인은 성공

하나의 Merge Request에서 파이프라인 탭에 브랜치 파이프라인과 Merge Request 파이프라인이 모두 있는 것이 가능합니다. 이는 구성에 의해 또는 실수적일 수 있습니다.

프로젝트에서 Merge Request 파이프라인이 성공해야 함에 체크하고 두 유형의 파이프라인이 모두 존재하는 경우, Merge Request 파이프라인이 확인되며 브랜치 파이프라인이 아닙니다.

따라서 Merge Request 파이프라인이 실패하면 브랜치 파이프라인 결과와는 관계없이 MR 파이프라인 결과가 실패로 표시됩니다.

그러나:

  • 이러한 조건은 강제되지 않습니다.
  • 레이스 조건은 Merge Request을 차단하거나 통과시키는 데 사용되는 파이프라인 결과를 결정합니다.

이 버그는 이슈 384927에서 추적됩니다.

이 Merge Request에 대해 새 파이프라인을 실행하려고 시도하는 동안 오류가 발생했습니다.

이 오류는 Merge Request에서 파이프라인 실행을 선택하면 프로젝트에 더 이상 Merge Request 파이프라인이 활성화되지 않은 경우 발생할 수 있습니다.

이 오류 메시지의 가능한 원인:

  • 프로젝트에 Merge Request 파이프라인이 활성화되지 않았거나 파이프라인 탭에 디렉터리된 파이프라인이 없으며 파이프라인 실행을 선택한 경우.
  • 프로젝트에서 Merge Request 파이프라인이 활성화되었지만 구성이 제거되었습니다. 예를 들어:

    1. Merge Request이 생성될 때 .gitlab-ci.yml 구성 파일에 Merge Request 파이프라인이 활성화되어 있습니다.
    2. 이 시점에서 Merge Request의 파이프라인 탭에서 파이프라인 실행 옵션이 사용 가능하며, 이 시점에서 파이프라인 실행을 선택하면 오류가 발생하지 않을 것입니다.
    3. 프로젝트의 .gitlab-ci.yml 파일이 변경되어 Merge Request 파이프라인 구성이 제거됩니다.
    4. 업데이트된 구성을 Merge Request에 가져오기 위해 브랜치를 리베이스합니다.
    5. 이제 파이프라인 구성은 더 이상 Merge Request 파이프라인을 지원하지 않지만 파이프라인 실행을 선택하여 Merge Request 파이프라인을 실행하려고 합니다.

파이프라인 실행이 가능하지만 프로젝트에서 Merge Request 파이프라인이 활성화되지 않았다면 이 옵션을 사용하지 마십시오. 새로운 브랜치 파이프라인을 트리거하기 위해 커밋을 푸시하거나 브랜치를 리베이스할 수 있습니다.

Merge 차단됨: 파이프라인이 성공해야 함. 실패를 수정하는 새 커밋을 푸시하십시오 메시지

이 메시지는 Merge Request 파이프라인, Merge된 결과 파이프라인, 또는 Merge Train 파이프라인이 실패하거나 취소된 경우에 표시됩니다. 이는 브랜치 파이프라인이 실패하는 경우가 아닙니다.

Merge Request 파이프라인 또는 Merge된 결과 파이프라인이 취소되거나 실패한 경우 다음을 수행할 수 있습니다:

  • Merge Request의 파이프라인 탭에서 파이프라인 실행을 선택하여 전체 파이프라인을 다시 실행할 수 있습니다.
  • 실패한 작업만 재시도. 전체 파이프라인을 다시 실행하면 이 작업이 필요하지 않습니다.
  • 실패를 수정하기 위해 새로운 커밋을 푸시할 수 있습니다.

Merge Train 파이프라인이 실패한 경우 다음을 수행할 수 있습니다:

  • 실패를 확인하고 즉시 Merge Request을 다시 트레인에 추가할 수 있는 /merge 퀵 액션을 사용할 수 있는지 확인합니다.
  • Merge Request의 파이프라인 탭에서 파이프라인 실행을 선택하여 전체 파이프라인을 다시 실행한 다음 다시 트레인에 Merge Request을 추가할 수 있습니다.
  • 실패를 수정하기 위해 커밋을 푸시한 다음 Merge Request을 다시 트레인에 추가할 수 있습니다.

Merge Train 파이프라인이 Merge Request이 Merge되기 전에 취소된 경우이며 실패가 없는 경우 다음을 수행할 수 있습니다:

  • 트레인에 다시 추가합니다.