GitLab QAの実行

以下のドキュメントは、デプロイされたクラウドネイティブのGitLabインストールに対してGitLab QAを実行するための手順を提供するものです。これらのステップはこのプロジェクトのCIの一部として実行されますが、開発者やデモ中に手動での実行が要求されるかもしれません。

準備

GitLab QAを実行する前に、やるべきことがいくつかあります。

GitLabのバージョンを決定します。

デプロイしたGitLabのChartから/admin 、Componentsパネルで実行中の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 gem をインストールします。

Rubyの機能的なバージョン、できれば2.5 ブランチがあることを確認してください。gitlab-qa gemをインストールします:

gem install gitlab-qa

詳細はGitLab QA ドキュメント を参照してください。

Docker

GitLab QAはDockerを利用しているので、オペレーションが可能なインストールが必要です。デーモンが起動していることを確認してください。GITLAB_VERSION=nightly を設定している場合は、GitLab QA のナイトリーイメージをプルして、CNG コンテナのナイトリービルドと合わせて最新のナイトリーがテストに使用されるようにします:

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

ネットワークアクセス

GitLab QA を実行するには、デプロイされたインスタンスへの持続的なネットワークアクセスが必要です。ブラウザから、または cURL 経由でデプロイにアクセスしてください。

設定

実行に必要な項目で、環境変数として設定されます:

  • 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).
  • GITHUB_ACCESS_TOKEN:有効なGitHubパーソナルアクセストークンを含む文字列。GitHub インポーターのテストに使用されます。GitLabチームメンバーの場合、GitLab QA ユーザーのアクセストークンは1passwordで確認できます。

上記の項目を取得し、環境変数としてエクスポートします。

テスト・スイートの選択

GitLab QAには、スタンドアロン環境に対して実行する複数のテストスイートがあります。スイートは、エンドツーエンドテストが様々なRSpecメタデータによってグループ化されたときのテストのサブセットで構成されます:

  • スモークスイート: 基本的な機能が動作していることを素早く確認するための、高速なエンドツーエンドの機能テストの小さなサブセット
    • このスイートを有効にするにはexport QA_OPTIONS="--tag smoke"
  • 煙と信頼性スイート: 主要な機能が動作していることを検証するための煙と信頼性テストのサブセット
    • このスイートを有効にするにはexport QA_OPTIONS="--tag smoke --tag reliable --tag ~skip_live_env --tag ~orchestrated"
  • フル・スイート: 環境に対してすべてのテストを実行します。テストの実行には 1 時間以上かかります。
    • このスイートを有効にするには--tag ~skip_live_env --tag ~orchestrated --tag ~requires_praefect --tag ~github --tag ~requires_git_protocol_v2 --tag ~transient

テスト・スイートの選択はユースケースによって異なります。多くの場合、Smoke と Reliable スイートを実行することで、迅速で一貫性のあるテスト結果が得られ、テストカバレッジも良好になります。このスイートは、GitLab.comのデプロイでサニティチェックとして使われています。

フル・スイートは、環境に関する完全なテスト結果を得るために使うべきです。ローカルマシンからこのスイートを実行するのはリソースを消費します。1台のマシンからFullスイートを実行する場合は、export CHROME_DISABLE_DEV_SHM=true

実行

設定ステップで環境変数を設定し、テストスイートを選択したとすると、次のコマンドはデプロイされた GitLab インスタンスに対してテストを実行します:

gitlab-qa Test::Instance::Any EE:$GITLAB_VERSION $GITLAB_URL -- $QA_OPTIONS
note
このチャートの一部として使われているコンテナは、現在gitlab-(ee|ce) リポジトリのmaster ブランチのナイトリービルドに基づいているため、上記のコマンドは_ナイトリーで_実行されます。