GitLabインテグレーション

mablテストをGitLab CI/CDパイプラインに統合

mabl GitLabインテグレーションを使用すると、mablの特定の環境やアプリケーションに関連するmablプランを自動的にトリガーし、GitLabパイプラインのステージとして実行できます。

mabl GitLabパイプラインイメージを使用すると、次のことを行うことができます。

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

📘

GitLabパイプラインでのmabl-CLIイメージの使用

mabl GitLabパイプラインイメージは、GitLab CI/CDパイプラインと統合されて、mablテストの結果の情報をGitLabマージリクエストに自動的に追加します。

ただし、mablデプロイイベントのすべての機能を利用したい場合は、mabl CLI Dockerイメージを使用するか、mabl CLIを直接パイプラインにインストールすることを検討してください。

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

パイプラインの.gitlab-ci.ymlファイルに、以下のコードブロックに示されているrun-mabl-testsステージを追加します。

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"

run-mabl-testsステージは、mablのデプロイイベントをトリガーします。デプロイイベントは、ワークスペース内のプランのうち、アプリケーション、環境、プランラベルなど、指定された条件に一致するすべてのプランの並列実行です。

📘

デプロイイベントによってトリガーされるのは、デプロイ時に実行するように設定された有効なプランのみです。プランが無効化されている場合やデプロイトリガーが存在しない場合、プランはデプロイイベントの一部として実行されません。

MABL_TEST_SELECTORS変数を使用して、実行するmablテストを定義します。

  • 少なくとも、--application-idまたは--environment-idを含める必要があります。mablアプリケーションおよび環境のIDの取得方法については、こちらを参照してください。
  • MABL_TEST_SELECTORSで使用可能なすべての引数のリストについては、mabl CLIでmabl deployments createコマンドのオプションを参照してください。

自動ブランチ

デフォルトでは、GitLabインテグレーションはGitLabビルドブランチを検出して、同じ名前のmablテストブランチを自動的に作成し、そのブランチに対してmablテストを実行します。以下の図に示すように、ブランチ名がmablテストの結果に表示されます。

1966

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

📘

mablがブランチを新規作成できるのは、GitLabから提供されたメタデータからブランチ名を検出できた場合だけです。

自動ブランチのサポートを無効にするには、以下のいずれかの手順を実行します。

  • スクリプト変数MABL_TEST_SELECTORS--branch-name=your-preferred-nameを渡します。
  • スクリプト変数MABL_AUTO_BRANCH_ENABLED=falseを設定します。

失敗時の動作の定義

デフォルトでは、mablテストが失敗すると、mablビルドステージはゼロ以外の終了コードを出力します。この動作を無効にするには、ステージ変数にMABL_FAIL_STAGE_ON_TEST_FAILを追加し、値をfalseに設定します。

レビューアプリの使用

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

プロジェクトのCI/CD変数の追加

.gitlab-ci.ymlファイルでrun-mabl-testsステージを設定したら、以下の変数を作成します。

  • mablで、mablからのCI/CDインテグレーションAPIキーを作成します。APIキーにアクセスできるのは、ワークスペースの所有者だけです。
  • GitLabで、"Mabl Access Token" という名前のパーソナルアクセストークンを作成します。
1918

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

mablのAPIキーとパーソナルアクセストークンを、CI/CDパイプラインの実行に使用するプロジェクトに追加します。

  1. [Project] > [Settings] > [CI/CD] > [Variables] にアクセスします。
  2. 変数MABL_REST_API_KEYを追加します。
  3. MABL_REST_API_KEYをmablからのCI/CDインテグレーションAPIキーの値に設定します。
  4. 変数MABL_GITLAB_API_TOKENを追加します。
  5. MABL_GITLAB_API_TOKENをGitLabからの "Mabl Access Token" の値に設定します。
  6. 保護されたブランチまたはタグを使用していない場合は、[Protected] オプションをオフにします。
1750

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

結果

GitLab CI/CDパイプラインの設定に応じて、run-mabl-testsステージの実行時に、以下のことが可能になります。

  • マージリクエストのコメントとして実行が開始されたことを確認する
1730
  • パイプラインジョブページで実行中のテストのライブステータスを確認する
1784
  • テスト終了時に、マージリクエストのマークダウンでテスト出力を確認する
  • オプションとして、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日

  • 初公開