GitLabインテグレーション

mablのビルド済みのGitLabパイプラインイメージを使用すると、mablとGitLab CI/CDパイプラインを簡単に統合できます。

GitLabパイプラインインテグレーションは、以下の機能を備えています。

  • CI/CDパイプラインからmablテストを簡単にトリガーする。
  • パイプラインステージとしてmablテストの結果のサマリーを表示する。
  • マージリクエストでmablテストの結果を確認する。

📘

GitLabインテグレーションとmabl-cliイメージのどちらを使用すべきか?

このインテグレーションは、mablテストの結果情報をGitLabマージリクエストに自動的に追加し、GitLab CI/CDパイプラインと簡単に統合することを目的としています。ただし、mablテストをトリガーするAPIの利用可能なすべての機能を使用する場合は、Mabl CLI Dockerイメージの使用を検討するか、mabl CLIの概要をパイプラインに直接インストールしてください。

19661966

マージリクエストでmablの結果を確認

17841784

GitLab CI/CDパイプラインでmablの結果をライブで確認

セットアップ

パイプラインへのmablの追加

mablテストを実行するパイプラインの.gitlab-ci.ymlに、以下のパイプラインステージを追加する必要があります。操作するセクションは、以下の「run-mabl-tests」セクションです。

📘

ビルドの成功をmablテストの成功に結び付ける

mablテストが失敗すると、mablビルドステージはゼロ以外の終了コードを出力します。これにより、パイプラインがGitLabで「failed」としてマークされることになります。これを回避するには、ステージの「variables」でMABL_FAIL_STAGE_ON_TEST_FAIL='false' を設定します。

build-1:
  stage: build
  script:
    - echo "Building your code"
    - echo "Place your build code here"

# Add this build stage to your pipeline YAML
run-mabl-tests:
  image: mablhq/gitlab-integration:latest
  stage: test
  variables:
    # Use 'mabl deployments create --help' on @mablhq/mabl-cli to learn more about flags
    MABL_TEST_SELECTORS: "--application-id=<YOUR-APP-ID> --labels=gitlab-demo"
  script:
    - "./mabl/home/run.sh"
  only:
    - merge_requests
    - branches
  except:
    - main

deploy-1:
  stage: deploy
  script:
    - echo "Deploying code to production"
    - echo "Place your deployment code here"

環境変数MABL_TEST_SELECTORSで、mabl CLIのdeployments createコマンドのテストセレクターフラグを使用することで、インテグレーションによって行われるアクションをカスタマイズできます。以下のようなフラグがあります。

  • --application-id: テストするアプリケーションを選択します。
  • --environment-id: テストする環境を選択します。
  • --labels: 指定したラベルと一致するプランを実行します。
  • --url: テスト実行用のURLオーバーライドを渡します。

注: --application-idまたは--environment-idのどちらかを渡す必要があります。

📘

プレビュー環境/レビューアプリケーションの使用

GitLabのReview Apps動的環境を使用する場合は、変数MABL_TEST_SELECTORSに--url ${CI_ENVIRONMENT_URL}フラグを追加して、Review Appsに対するテストを行います。

mablのパーソナルアクセストークンの作成

mablがマージリクエストを更新できるようにするため、apiスコープのパーソナルアクセストークンを作成する必要があります。これを行うには、GitLabの「Personal Access Tokens」セクションにアクセスし、以下の画像のようにMabl Access Tokenというキーを作成します。

トークン値を必ず保存してください。

19181918

mablのGitLabアクセストークンの作成

GitLab用のmabl APIキーの作成

mabl APIアクセスキーは、mablの [Settings] > [APIs] にあります。まだCLIスコープのキーがない場合は、「高度なAPIキー管理」で、キーの作成と管理の方法を参照してください。

21322132

GitLabで使用するmabl REST APIキーの作成

プロジェクトに必要なシークレットの追加

CI/CDパイプラインを実行するプロジェクトに、必要なシークレットを保存する必要があります。

  1. [Project] > [Settings] > [CI/CD] > [Variables] にアクセスします。
  2. 変数MABL_GITLAB_API_TOKENを追加して、上記で作成したパーソナルアクセストークンに設定します。
  3. 変数MABL_REST_API_KEYを追加して、mabl APIキーに設定します。
    保護されたブランチ/タグ (詳細) を使用していない場合は、[Protected] オプションをオフにします。

Unless you are using Protected Branches/Tags (learn more), uncheck the Protected option.

17501750

GitLabプロジェクトにmablシークレットを追加

Mabl自動ブランチのサポート

mablテストのブランチ上で機能ブランチテストを実行すると便利な場合がよくあります。デフォルトでは、GitLabインテグレーションはGitLabビルドブランチを検出し、(1) 同じ名前のmablテストブランチを自動的に作成し、(2) そのブランチに対してmablテストを実行します。これは、GitLabが提供するメタデータからmablがブランチを検出できる場合にのみ行われます。

検出されたこのブランチは、以下のように、mablテストの結果に表示されます。

17301730

mabl Webアプリケーションに表示された、「your-branch」という名前の自動検出されたブランチ

自動ブランチのサポートは、次のいずれかの方法で無効にできます。

  1. スクリプト変数MABL_TEST_SELECTORSに--branch-name=your-preferred-nameを渡す。
  2. スクリプト変数MABL_AUTO_BRANCH_ENABLED=falseを設定する。

すべて完了

これで、GitLab CI/CDパイプラインの設定に応じて、mablテストステージを実行すると、以下のことができるようになります。

  • マージリクエストのコメントとして、実行が開始されたことを確認する。
  • パイプラインジョブページで、実行中のテストのライブステータスを確認する。
  • テスト終了時に、マージリクエストでMarkdown形式のテスト出力を確認する。
  • mablテストが失敗した場合、ビルドを失敗にする (オプション)。

リリースノート

`v1.0.6 - 2021年7月23日

  • MABL_AUTO_BRANCH_ENABLED環境フラグ入力を追加し、自動ブランチのサポートを無効にできるようにしました。
  • MABL_DEBUG_ENABLEDを追加しました (デバッグ情報を表示するにはtrueに設定)。
  • 自動ブランチと明示的ブランチを組み合わせた場合にコマンドの実行に失敗するバグを修正しました。
  • 失敗時にゼロ終了コードが出力される可能性があるバグを修正しました。
  • 自動ブランチのサポートを説明するために役立つログを追加しました。
  • エラー処理の保護機能をさらに追加しました。

`v1.0.5 - 2021年7月19日

  • イメージのデフォルトパスを変更するとコマンドが実行されないバグを修正しました。

`v1.0.4 - 2021年7月18日

  • 依存関係の更新
  • 最適化
  • mabl-cliバージョンのアップグレード

v1.0.3 - 2020年8月25日

  • 初公開