InfoGrab DocsInfoGrab Docs

GitLab 프로젝트 파이프라인

GitLab 프로젝트(`gitlab-org/gitlab`)의 CI/CD 파이프라인 구성, 예측 테스트 선택, 병렬화, 호환성 테스트 등을 설명합니다.

gitlab-org/gitlab (및 dev 인스턴스)의 파이프라인은 일반적인 .gitlab-ci.yml 에 구성되어 있으며, 유지 관리를 쉽게 하기 위해 .gitlab/ci/ 아래의 파일들을 포함합니다. 가능한 한 GitLab CI/CD 기능과 모범 사례 를 dogfood 하기 위해 노력하고 있습니다. dev.gitlab.com 인스턴스에 미러링되어 있지 않은 CI/CD 컴포넌트 는 gitlab-org/gitlab 파이프라인에서 사용하지 않습니다. CI/CD 컴포넌트는 서로 다른 인스턴스 간에는 동작하지 않으며, 해당 인스턴스에 존재하지 않으면 dev.gitlab.com 미러에서 파이프라인 실패를 유발합니다 . 파이프라인 티어 # 머지 리퀘스트는 일반적으로 여러 CI/CD 파이프라인을 실행합니다. 머지 리퀘스트가 승인 프로세스에서 어느 단계에 있는지에 따라 서로 다른 종류의 파이프라인이 트리거됩니다. 이러한 파이프라인 종류를 파이프라인 티어라고 합니다. 현재 세 가지 티어가 있습니다. pipeline::tier-1 : 머지 리퀘스트에 승인이 없는 경우 pipeline::tier-2 : 머지 리퀘스트에 승인이 하나 이상 있지만 아직 더 필요한 경우 pipeline::tier-3 : 머지 리퀘스트가 필요한 승인을 모두 받은 경우 일반적으로 파이프라인 티어가 낮을수록 파이프라인은 더 빨라야 합니다. 파이프라인 티어가 높을수록 더 많은 테스트를 실행해 더 큰 확신을 줘야 합니다. 구현에 대한 자세한 내용은 MR 파이프라인에 "티어" 도입 에픽을 참고합니다. 머지 리퀘스트 승인 전 예측 테스트 job # 파이프라인 비용을 줄이고 job 실행 시간을 단축하기 위해, 머지 리퀘스트가 승인되기 전에는 파이프라인이 해당 변경 사항에서 실패할 가능성이 있는 RSpec·Jest 테스트를 예측해서 실행합니다. 머지 리퀘스트가 승인된 후에는 파이프라인에 전체 RSpec·Jest 테스트가 포함됩니다. 이를 통해 머지 리퀘스트가 머지되기 전에 모든 테스트가 실행되도록 보장합니다. GitLab 프로젝트 테스트 의존성 개요 # 예측 테스트 job 이 어떻게 실행되는지 이해하려면, GitLab 코드(프론트엔드와 백엔드)와 그에 대응하는 테스트(Jest와 RSpec) 간의 의존성을 이해해야 합니다. 이 의존성은 다음 다이어그램으로 나타낼 수 있습니다. Mermaid 다이어그램 (10줄) 소스 코드 보기 flowchart LR subgraph frontend fe["Frontend code"]--tested with-->jest end subgraph backend be["Backend code"]--tested with-->rspec end be--generates-->fixtures["frontend fixtures"] fixtures--used in-->jest</code></pre></details></div> 요약하면 다음과 같습니다. RSpec 테스트는 백엔드 코드에 의존합니다. Jes