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テストの結果に表示されます。
マージリクエストで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" という名前のパーソナルアクセストークンを作成します。
mablのGitLabアクセストークンの作成
mablのAPIキーとパーソナルアクセストークンを、CI/CDパイプラインの実行に使用するプロジェクトに追加します。
-
[Project] > [Settings] > [CI/CD] > [Variables]
にアクセスします。 - 変数
MABL_REST_API_KEY
を追加します。 -
MABL_REST_API_KEY
をmablからのCI/CDインテグレーション
APIキーの値に設定します。 - 変数
MABL_GITLAB_API_TOKEN
を追加します。 -
MABL_GITLAB_API_TOKEN
をGitLabからの "mabl Access Token" の値に設定します。 - 保護されたブランチまたはタグを使用していない場合は、[Protected] オプションをオフにします。
GitLabプロジェクトにmablシークレットを追加
結果
GitLab CI/CDパイプラインの設定に応じて、run-mabl-tests
ステージの実行時に、以下のことが可能になります。
- マージリクエストのコメントとして実行が開始されたことを確認する
- パイプラインジョブページで実行中のテストのライブステータスを確認する
- テスト終了時に、マージリクエストのマークダウンでテスト出力を確認する
- オプションとして、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日
- 初公開