GitLab QA 실행

다음 문서는 클라우드 네이티브 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 실행을위한 다음의 수동 단계를 자동화하는 병렬화가 포함된 GitLab 환경에서 GitLab QA를 실행하기 위한 CI 구성이 포함되어 있습니다.

로컬 머신에서 GitLab QA 실행

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

gitlab-qa 젬 설치

Ruby의 기능적 버전인 3.0 브랜치의 기능적 버전이 있는지 확인합니다. 그런 다음 gitlab-qa 젬을 설치합니다:

gem install gitlab-qa

자세한 내용은 GitLab QA 문서를 참조하십시오.

Docker

GitLab QA는 Docker를 사용하므로 작동하는 설치가 필요합니다. 데몬이 실행 중인지 확인합니다. GITLAB_VERSION=nightly를 설정한 경우 최신 nightly를 테스트하기 위해 GitLab QA nightly 이미지를 가져와야 합니다. 주기적 빌드와 함께 최신 nightly를 사용하기 위한 CNG 컨테이너의 nightly 빌드를 사용하세요:

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

구성

실행에 필요한 항목은 환경 변수로 설정될 것입니다:

  • GITLAB_VERSION: 실행할 GitLab QA 버전. 위의 실행 중인 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 메타데이터로 그룹화된 테스트의 하위 집합으로 이루어져 있습니다:

  • 스모크 스위트: 기본 기능이 작동하는지 빠르게 확인하기 위한 소형 최종 사용자 단에서 실행되는 기능 테스트
    • 이 스위트를 사용하려면 export QA_OPTIONS="--tag smoke"를 설정하세요.
  • 스모크 및 신뢰성 스위트: 주요 기능이 작동하는지를 검증하기 위한 일부 스모크 및 신뢰성 테스트
    • 이 스위트를 사용하려면 export QA_OPTIONS="--tag smoke --tag reliable --tag ~skip_live_env --tag ~orchestrated --tag ~github"를 설정하세요.
  • 전체 스위트: 환경 전체에 대해 모든 테스트를 실행합니다. 테스트 실행에는 1시간 이상이 소요됩니다.
    • 이 스위트를 사용하려면 --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

참고: 위의 명령은 _nightly_로 실행되며, 이 차트의 일부로 사용되는 컨테이너는 현재 gitlab-(ee|ce) 리포지토리의 master 브랜치의 nightly 빌드를 기반으로 합니다.