GitLab QA 실행

다음 문서는 Cloud 네이티브 GitLab 설치에 대해 GitLab QA를 실행하는 지침을 제공하는 것을 목적으로 합니다. 이러한 단계들은 이 프로젝트의 CI의 일부로 수행되지만 개발 또는 데모 중에는 매뉴얼 실행을 요청할 수 있습니다.

준비

GitLab QA를 실행하기 전에 몇 가지 준비가 필요합니다.

실행 중인 GitLab 버전 확인

설치된 GitLab 차트에서 /admin을 방문하여 실행 중인 GitLab 버전을 확인합니다. 만약 X.Y.Z-pre라면 nightly 이미지가 필요합니다. 만약 X.Y.Z-ee라면 해당 버전의 GitLab QA 이미지가 필요합니다.

관찰한 내용을 기반으로 GITLAB_VERSION을 내보냅니다:

export GITLAB_VERSION=11.0.3-ee

또는:

export GITLAB_VERSION=nightly

네트워크 접속

GitLab QA를 실행하려면 배포된 인스턴스에 지속적으로 네트워크 접속이 필요합니다. 브라우저를 통해 배포 위치를 방문하거나 cURL을 통해 이를 확인하세요.

파이프라인에서 GitLab QA 실행

배포된 인스턴스에 대한 GitLab QA 테스트를 실행하려면 GitLab QA Executor를 사용할 수 있습니다. 이 프로젝트에는 GitLab QA를 Self-Managed GitLab 환경에서 병렬화하여 실행하는 CI 구성이 포함되어 있어 로컬 머신에서 GitLab QA를 실행하는 매뉴얼 단계를 자동화합니다.

로컬 머신에서 GitLab QA 실행

로컬 머신에서 배포된 인스턴스에 대해 GitLab QA를 실행하려면 아래 지침을 따르세요.

gitlab-qa 젬 설치

가능하다면 3.0 브랜치의 기능적인 Ruby 버전을 설치해야 합니다. 그리고 gitlab-qa 젬을 설치합니다:

gem install gitlab-qa

더 많은 정보는 GitLab QA 문서를 참조하세요.

Docker

GitLab QA는 Docker를 사용하므로 운영 중인 설치가 필요합니다. 데몬이 실행 중인지 확인하세요. 만약 GITLAB_VERSION=nightly를 설정했다면, 테스트에 최신 nightly 빌드가 사용되도록 GitLab QA nightly 이미지를 다운로드하세요:

docker pull gitlab/gitlab-ee-qa:$GITLAB_VERSION

구성

실행에 필요한 항목들은 환경 변수로 설정될 것입니다. 이 환경 변수로 지원되는 환경 변수로 설정될 것입니다:

  • GITLAB_VERSION: 실행할 GitLab QA 버전. Determine running version of GitLab를 참조하세요.
  • GITLAB_USERNAME: root가 될 것입니다.
  • GITLAB_PASSWORD: root 사용자의 암호가 될 것입니다.
  • GITLAB_ADMIN_USERNAME: root가 될 것입니다.
  • GITLAB_ADMIN_PASSWORD: root 사용자의 암호가 될 것입니다.
  • GITLAB_URL: 배포된 인스턴스의 완전히 정규화된 URL. https://gitlab.domain.tld 형식이어야 합니다.
  • EE_LICENSE: GitLab EE 라이선스를 포함하는 문자열. export EE_LICENSE=$(cat GitLab.gitlab-license)를 통해 처리될 수 있습니다.

위의 항목들을 검색하고 이를 환경 변수로 내보내세요.

테스트 스위트 선택

GitLab QA에는 독립 환경에 대해 실행할 여러 테스트 스위트가 있습니다. 스위트는 다양한 RSpec metadata로 그룹화된 종단간 테스트의 하위 집합으로 구성됩니다:

  • 스모크 스위트: 빠른 종단간 기능 테스트에 대한 작은 하위 집합으로, 기본 기능이 작동하는 것을 빠르게 확인합니다:
    • 이 스위트를 활성화하려면 export QA_OPTIONS="--tag smoke"를 사용하세요.
  • 스모크 및 신뢰할 수 있는 스위트: 스모크 및 신뢰할 수 있는 테스트의 하위 집합으로 주요 기능이 작동하는 지를 확인합니다:
    • 이 스위트를 활성화하려면 export QA_OPTIONS="--tag smoke --tag reliable --tag ~skip_live_env --tag ~orchestrated --tag ~github"를 사용하세요.
  • 전체 스위트: 환경에 대해 모든 테스트를 실행합니다. 테스트 실행에는 한 시간 이상 소요될 것입니다.
    • 이 스위트를 활성화하려면 --tag ~skip_live_env --tag ~orchestrated --tag ~requires_praefect --tag ~github --tag ~requires_git_protocol_v2 --tag ~transient를 사용하세요.

테스트 스위트를 선택하는 것은 사용 사례에 따라 다릅니다. 대부분의 경우, 스모크 및 신뢰할 수 있는 스위트를 실행하면 빠르고 일관된 테스트 결과뿐만 아니라 좋은 테스트 커버리지를 제공할 것입니다. 이 스위트는 GitLab.com 배포에서 상식적인 체크로 사용됩니다.

전체 스위트는 환경에 대해 완전한 테스트 결과를 얻기 위해 사용해야 합니다. 로컬 머신에서 이 스위트를 실행하는 데 리소스를 많이 사용할 수 있습니다. 이 스위트를 단일 머신에서 실행할 때 export CHROME_DISABLE_DEV_SHM=true를 사용하세요.

실행

구성 단계에서 환경 변수를 설정하고 테스트 스위트를 선택했다고 가정하면, 아래 명령은 배포된 GitLab 인스턴스에 대한 테스트를 수행할 것입니다:

gitlab-qa Test::Instance::Any EE:$GITLAB_VERSION $GITLAB_URL -- $QA_OPTIONS
note
위 명령은 nightly와 함께 실행됩니다. 왜냐하면 이 차트의 일부로 사용되는 컨테이너들은 현재 gitlab-(ee|ce) 리포지터리들의 master 브랜치의 nightly 빌드를 기반으로 하고 있기 때문입니다.