「run mabl tests」GitHub Actionを使用して、GitHubActionsワークフローの一部としてmablテストを自動的にトリガーします。「run mabl tests」GitHub Actionを使用すると、次のことができます。
- GitHubで新しいデプロイを開始してすぐに、mablの特定の環境やアプリケーションに関連するmablプランを実行する
- mablテストの結果をGitHub内で直接確認する
- mablテストの結果に基づいてパイプライン内の後続のアクションをカスタマイズする
このActionは mablデプロイメントイベントをトリガーし、mablクラウドでテストを実行します。CIランナーでテストを実行する場合は、 CI環境内でのテストの実行をご覧ください。
セットアップ
「Run mabl tests」GitHub Actionをセットアップするには、次のステップに従ってください。
- mablアプリで、「CI/CDインテグレーション」 APIキーを作成します。APIキーへのアクセスはワークスペースの 所有者に限定されています。
- GitHubで、 GitHub Actions Secretsを使用して、mablのAPIキーを
MABL_API_KEYという名前で保存します。 - リポジトリのGitHub Actionsワークフローに 「run mabl tests」GitHub Actionを追加します。
- このアクション内のプレースホルダーの値を、実行するmablテストのパラメーターに置き換えます。少なくとも、トリガーするmablプランのアプリケーションIDや環境IDを含める必要があります。
ブラウザ、ブランチ、プランラベル、URLオーバーライドなど、mablテストを実行するためのパラメータの完全なリストについては、 ワークフローの例:完全版をご覧ください。
このActionは、デプロイメントイベントの一部として、コミットハッシュgithub.shaを自動的にmablに渡します。これは GitHubの課題の自動作成や カスタムGitHubイベントに使用できます。
mabl GitHub ActionとmaблのGitHubインテグレーションを組み合わせる
mabl GitHubインテグレーション (アプリケーション) をインストールすると、プルリクエスト内の結果など、より詳細なやり取りが可能になります。詳細については、「GitHubインテグレーションのセットアップ」を参照してください。
Actionのカスタマイズ
サンプルワークフローは、コミットまたはタグをプッシュしたときにmablテストをトリガーします。目的に応じて、プルリクエストのオープンやスケジュールに基づくテストの実行など、mablテストをトリガーする別の イベントを使用することもできます。
また、テスト結果の統計を利用して、パイプラインで実行される後続のアクションを制御できます。たとえば、次のことを行うことができます。
- 1回のテストの失敗で自動的に失敗するのではなく、特定のしきい値や合格したテストの割合に基づいて失敗するように、パイプラインを簡単にカスタマイズできます。
- すべてのテストが成功した場合に、ビルドを次の環境に自動的にプロモートするようにパイプラインを設定することで、開発環境または本番環境へのプッシュを手動でタグ付けしたりトリガーしたりする必要がなくなります。
GitHub Actionの実行
mablは、パイプラインからデプロイメントイベントを受信するとすぐに、アクションで定義された特定のパラメーターに基づいて、mablデプロイイベントを自動的にトリガーします。トリガーされたすべてのテストが完了するまで、アクションは継続的にmablをポーリングします。
失敗時の動作を変更していない限り、アクションが失敗を返すとパイプラインは停止します。
プランレベルの自動リトライはActionジョブのステータスを更新しない
プランで「失敗時に自動的にリトライ」設定が有効になっている場合、Actionは最初のプラン実行の結果を報告します。最初の実行が失敗してリトライが成功した場合、mablでプランが最終的に成功していても、GitHubのActionジョブは失敗のままになります。合否の判定にリトライの動作を使用している場合は、Actionジョブのステータスではなく、mablのプラン実行を確認してください。
Actionのログを表示する
デプロイメントが行われた後、アクションによってトリガーされたmablテストの結果をGitHubアクションのログで直接確認できます。
- [Actions] タブをクリックし、mablのGitHub Actionsワークフローを開いてアクションのログを表示します。
- PRで実行するようにmabl GitHubアクションを設定している場合は、[Details] ボタンをクリックしてアクションのログを表示することもできます。
GitHubアクションの出力ログの表示
GitHub Actionsのログには、ブラウザー、ステータス、テスト名、実行時間、mablアプリケーションの出力への直接リンクなどが記載された表をはじめ、mablテストに関する有用な情報が記録されています。
トラブルシューティング
デプロイメントは成功したがテストが実行されなかった
Actionが1分以内などすぐに成功を返し、mablにデプロイメントイベントは表示されているがプランの実行が見当たらない場合、デプロイメントイベントに一致するプランがなかった可能性があります。mablがデプロイメントイベントに応じてプランをトリガーするには、プランが以下の条件をすべて満たしている必要があります。
- プランのフィルター(アプリケーション、環境、プランラベル)がデプロイメントイベントのパラメータと一致している。ラベルの一致では大文字と小文字が区別されます。
- プランがオンになっており、アクティブな状態である。
- プランの設定のトリガーセクションで、デプロイメントトリガーを受け入れるように設定されている。
- プラン内の少なくとも1つのテストが有効になっている。
詳細については、デプロイメントエベントをご覧ください。
401 Unauthorizedエラー
アクションが401エラーを返す場合は、以下を確認してください。
- APIキーの種類: mablのAPIキーが「CI/CDインテグレーション」タイプであることを確認してください。編集者やDeployment TriggerなどのAPIキータイプでは、アクションの認証は行われません。
-
シークレット名の一致: GitHubのシークレット名がワークフローYAML内の変数名と完全に一致していることを確認してください。シークレット名は大文字と小文字が区別されます。たとえば、
MABL_API_KEYとmabl_api_keyは異なります。 - シークレットのスコープ: シークレットがリポジトリレベルで定義されており、削除済みの環境のみや別のリポジトリに定義されていないことを確認してください。