CodeBuildのバッチビルド時にビルドステータスをどのようにレポートするか選択出来るようになりました

2021.11.12

いわさです。

CodeBuildでは、ビルドステータスをソースプロバイダーへ通知することが出来ます。
また、CodeBuildではバッチビルドを行うことが出来ます。
バッチビルドを行うと複数のビルドタスクを実行することが可能です。

実は2~3ヶ月前に、CodeBuildがバッチビルドをする際にビルドステータスを通知する際のモードを選択することが出来るようになるアップデートがされています。
本日はようやく試してみました。

バッチレポートモードの設定

バッチ設定に「バッチレポートモード」の設定が追加されています。

ただし、この機能を利用するにあたって前提条件がいくつかあります。

ソースプロバイダーはBitbucket、GitHub、GitHub Enterpriseを選択する必要があります。
また、以下のビルドステータス通知オプションを有効化する必要があります。

この2つの条件を満たす必要があります。

バッチビルドにてためしてみる

では実際にCodeBuildでビルドして試してみましょう。
今回検証に使用したソースプロバイダはGitHubです。

上記リポジトリを見ていただくとわかりますが、バッチビルド用のbuildspecと各ビルドタスク毎のbuildspecを用意しているだけです。
buildspecのexitコードでビルドの成功・失敗を分けています。

集約されたビルド

集約されたビルドは従来までの動きです。

以下のように一部のビルドタスクが失敗し、バッチビルド自体が失敗に終わった場合を仮定します。

バッチビルドの結果のみ表示されていますね。
Detailsの遷移先はAWS CodeBuild上のバッチビルド結果画面です。

個々のビルド

では次に、個々のビルドにて試してみます。

このように、バッチビルド画面のビルド実行毎の結果とバッチビルド全体の結果の計4件が表示されています。
GitHub上からでも、一部のビルドタスクだけ失敗していることがすぐに確認出来るようになりました。

バッチビルドのDetailsリンクは先程と同様にバッチビルド結果画面ですが、個々のDetailsリンクの遷移先はビルドタスク毎の結果画面です。
失敗したビルドタスクだけにフォーカスして詳細なエラー内容を確認することが出来ますね。

AWS CLI

ちなみに、CLIにもcreate-projectにbatchReportModeパラメータが追加されていますのでマネジメントコンソールと同様に設定が可能です。

省略時のデフォルトは、「集約されたビルド」です。

まとめ

本日はCodeBuildのバッチレポートモードの検証を行いました。 個々のビルドを設定した場合でも、従来どおりのバッチビルド結果もステータスとして通知されるので、情報過多でない限りはデメリットが無いので基本的には「個々のビルド」を設定しても良いかと思います。

なお、ビルドバッジについては現時点ではまだバッチビルドに対応していないようなので本機能は利用出来ませんのでご注意ください。