테스트용 패키지 빌드하기

새로운 기능을 개발하거나 기존 기능을 수정하는 동안, 테스트를 위해 이러한 변경 사항이 포함된 설치 가능한 패키지(또는 Docker 이미지)가 사용 가능한 것이 도움이 됩니다. 이 목적으로 GitLab CI/CD 파이프라인에 수동 작업이 제공되며, 이를 사용하여 Omnibus GitLab 저장소에서 다음과 같은 파이프라인을 트리거할 수 있습니다:

  • Ubuntu 16.04용 deb 패키지, 빌드 아티팩트로 제공되며,
  • Docker 이미지. Docker 이미지는 Omnibus GitLab 컨테이너 레지스트리로 푸시됩니다. GitLab Enterprise Edition의 이미지는 gitlab-ee로 이름이 지정되며, GitLab Community Edition의 이미지는 gitlab-ce로 이름이 지정됩니다.
  • 이미지 태그는 파이프라인을 트리거한 커밋입니다.

GitLab CE 또는 GitLab EE 프로젝트에 커밋을 푸시하면, 해당 커밋의 파이프라인에는 .pre 단계의 e2e:test-on-omnibus 자식 파이프라인 안에 trigger-omnibus 작업이 포함됩니다.

Trigger omnibus job

자식 파이프라인이 시작된 후, trigger-omnibus를 선택하여 TRIGGERED_EE_PIPELINE이라는 이름의 자식 파이프라인으로 이동할 수 있습니다.

Triggered child pipeline

다음으로, trigger-package 단계에서 Trigger:package 작업을 선택합니다.

Trigger:package 작업이 완료되면 그 아티팩트를 GitLab에 업로드하며, 그 후 아티팩트를 브라우즈하여 .deb 파일을 다운로드할 수 있습니다. 또는 GitLab API를 사용하여 파일을 VM으로 직접 다운로드할 수 있습니다. 이 아티팩트는 유효 기간이 짧으므로 하루 이내로 자동으로 삭제됩니다.

구성 요소 버전 지정하기

특정 브랜치, 커밋 또는 GitLab 구성 요소(예: GitLab Workhorse, Gitaly 또는 GitLab Pages)의 태그로부터 패키지를 만들고자 하는 경우, 각 구성 요소의 *_VERSION 파일에 브랜치 이름, 커밋 SHA 또는 태그를 지정할 수 있습니다. 예를 들어, 0-1-stable 브랜치를 사용하는 패키지를 빌드하려는 경우, GITALY_SERVER_VERSION의 내용을 0-1-stable로 수정하고 커밋을 푸시합니다. 그러면 빌드를 트리거할 수 있는 수동 작업이 생성됩니다.

Omnibus GitLab 저장소의 브랜치 지정하기

구성 변경 사항을 도입해야 하는 경우에 Omnibus GitLab 저장소에 특정 브랜치에 필요한 변경 사항이 이미 있는 경우, OMNIBUS_BRANCH라는 CI/CD 변수를 통해 해당 브랜치에 대해 패키지를 빌드할 수 있습니다. 이를 수행하려면, .gitlab-ci.yml에서 해당 변수를 브랜치 이름을 값으로 지정하고 커밋을 푸시합니다. 그러면 빌드를 트리거할 수 있는 수동 작업이 생성됩니다.