Google Cloud Buildインテグレーションを使用すると、mablの特定の環境やアプリケーションに関連するmablプランを自動的にトリガーし、Cloud Buildパイプラインのステージとして実行できます。
このインテグレーションを使用すると、次のことが可能になります。
- CI/CDパイプラインまたはmablクラウドで、mablテストを実行する
- mablテストの結果のサマリーをビルドログで表示する
- mablテストが失敗した場合に、ビルドの失敗をトリガーする
- mablの [Deployments] 画面からCloud Buildのログにリンクする
また、ブラウザーテストの実行は完全にCloud Build内で実行できますが、これらの結果はmablクラウドではなく、Cloud Build内にのみ表示されます。
セットアップ
mablをビルドに追加してクラウド実行をトリガーする
パイプラインのcloudbuild.yml
ファイルで、mablデプロイイベントを作成するステップを追加します。デプロイイベントは、アプリケーション、環境、プランラベルなど、指定したセレクターに一致するプランのmablクラウド実行をトリガーします。
次のコードブロックに示された例をテンプレートとして使用します。
# Add this to your "steps:" block
- name: 'mablhq/mabl-cli'
id: 'Validate app quality'
# Add the arguments you'd pass to the CLI, one at a time. Don't include the "mabl" prefix.
args: ['deployments','create',
'--application-id', '',
'--labels',''
'--await-completion']
# Enable so mabl can link back to your build from the mabl app
automapSubstitutions: true
secretEnv: ['MABL_REST_API_KEY']
availableSecrets:
secretManager:
# Store your mabl CLI key securely in Cloud Secret Manager
- versionName: projects//secrets/cloud-build-mabl-rest-api-key/versions/latest
env: 'MABL_REST_API_KEY'
args
フィールドには、次のオプションを配列形式で指定できます。
-
--application-id
: 指定したアプリケーションに関連するプランを実行します。 -
--labels
: 指定したラベルに一致するプランを実行します。 -
--await-completion
: mablのプラン実行が完了するまで待機し、結果を表示します。クラウドプラン実行が失敗した場合、ゼロ以外のbash終了コードが返され、クラウドビルドステップは失敗します。
オプションの完全なリストについては、mabl deployments create CLIコマンドに関する記事を参照してください。
このステップの例をビルドで使用するには、次のプレースホルダーを変更します。
-
: 実行するmablプランのアプリケーションIDに変更します。
-
: スペースで区切られたプランラベルのリストに変更します。
-
: Cloud Secret Managerが存在するGoogle CloudプロジェクトのIDに変更します。
-
cloud-build-mabl-rest-api-key
: mabl APIキーを保持するシークレット名に変更します。
当社が用意したmablhq/mabl-cli
イメージを使用する場合、先頭のmabl
プレフィックスが省略されていることに注意してください。
mablをビルドに追加して「ローカル」テスト実行をトリガーする
mablテストは、完全にCloud Build内で実行することもできます。つまり、テストはmablクラウドではなく、Cloud Build内で、ヘッドレスで実行されます。この実行は、「ローカル」テスト実行とも呼ばれます。ローカルテスト実行とその結果は、mablクラウドには表示されません。
テストを完全にCloud Build内で実行するには、上記の例のname: 'mablhq/mabl-cli'
をname: 'mablhq/mabl-cli-chromium'
に変更して、Chromiumを含むmablイメージをビルドで使用するようにします。
また、mabl tests run --headless --id
コマンドにargs
配列の引数を使用します。利用可能なすべてのオプションについては、mabl tests run --help
を参照してください。テスト実行のみがサポートされ、プラン実行はサポートされていないことに注意してください。
mabl APIキーをビルドに追加する
MABL_REST_API_KEY
環境変数を使用して、mabl APIに資格情報を渡します。インテグレーションが自動的にこのキーを検出し、すべてのCLIコマンドを承認するために使用します。
セキュリティのベストプラクティスとして、Google Cloud Secret Managerを使用して、APIキーのようなシークレットを保管します。このステップの例では、YOUR-PROJECT
という名前のプロジェクトに保存されている、cloud-build-mabl-rest-api-key
シークレットを使用するように設定されています。
ビルドからCloud Secret Managerシークレットにアクセスする方法の詳細については、Cloud BuildのSecret Managerのシークレットを使用するを参照してください。
また、以下のコードブロックのように、ビルドステップ定義の一部としてビルドファイルにAPIキーをハードコードすることもできます。この方法は、ビルドファイルを表示するすべてのユーザーが平文のAPIキーを確認できるため、セキュリティのベストプラクティスとは見なされません。
env:
- "MABL_REST_API_KEY="
結果
ビルドが完了すると、ビルドのサマリーでmablテストの結果を確認できます。
mablテストの結果をビルドログで表示
args:
の値の一部として--await-completion
CLIフラグが渡されると、以下の画像のように、ビルドログのテスト実行終了時にテスト結果のサマリーがASCIIテーブルとして表示されます。 完全で詳細な結果を表示するには、リンクをクリックしてmablアプリ内で出力を表示します。
mablで出力を表示するためのリンクを含んだビルドログ
mablのデプロイメント詳細ページには、デプロイメントがCloud Buildによってトリガーされたことが示され、ビルドIDおよびCloud Buildログへのディープリンクが含まれています。
Google Cloud Buildによってトリガーされたデプロイメントの詳細ページ