[アップデート] AWS CodeBuild + GitHub Webhook 連携でウェブフックの手動構成オプションを使ってみた

2024.06.02

いわさです。

AWS CodeBuild はソースプロバイダとして連携した GitHub リポジトリの Webhook イベントをトリガーとしてビルドを実行することが出来ます。

この機能を有効化すると、GitHub リポジトリに CodeBuild 用の Webhook が自動作成されます。
通常はそれで問題ないのですが、GitHub アカウント側の設定で CodeBuild からの Webhook 作成が許可されていない場合は自動作成だと不都合が生じる場合がありました。

先日(2024/5/23)のアップデートで CodeBuild 構成時に Webhook 作成に必要な情報を表示し、それを使ってユーザー側で Webhook を手動作成出来るようになりました。

やってみましょう!

プライマリソースのウェブフックイベントを構成する

まずは従来のウェブフックイベント構成手順を確認してみましょう。
というのもこの機能自体は前から使えますが、UI が少し変わっていたりもします。

前提としてまずソースプロバイダに Github を選択します。

続いてプライマリソースのウェブフックイベントにて「コードの変更がこのレポジトリにプッシュされるたびに再構築する」を有効にするオプションが表示されますので、こちらを ON にします。

そうするとビルドタイプや、オプションでイベントタイプなどでのフィルターが可能になります。
後は細かいオプションを選択するくらいで、このまま CodeBuild プロジェクトを作成すれば自動でウェブフックが作成されるはずです。

CodeBuild プロジェクト作成後に、GitHub リポジトリの Webhooks 設定を確認してみると、CodeBuild 用のものが自動で追加されていました。
なるほど!

で、この状態で試しに GitHub リポジトリ側で新しくプルリクエストを作成してみましょう。
すると CodeBuild 側でビルドが実行されていることが確認出来ます。

手動で構成してみよう

今回のアップデートがこちらですね。
まず、次の追加設定の中の「このリポジトリのウェブフックをGitHubコンソールで手動で作成します。」を選択出来るようになっています。

上記を選択して CodeBuild プロジェクトを作成すると、先程と異なりプロジェクト作成時に次の情報(ペイロードの URL、シークレット)が表示されるようになりました。
なるほど、この情報を使って手動構成してくれやということですね。

GitHub で対象リポジトリの Webhooks を確認してみると当然ながらまだウェブフックは自動作成されていません。
手動で追加してみます。

ウェブフック作成にはペイロード URL とシークレットが必要なので、先程の画面からコピーして展開しましょう。

さらに、Content-Type はデフォルトからapplication/jsonに変更します。

また、ウェブフックトリガーがデフォルトだとプッシュイベントだけになっています。
そこで CodeBuild 側のイベントフィルターにあわせて設定しておきましょう。今回だとプルリクエストを設定追加しました。

手動構成した GitHub リポジトリにてプルリクエストを作成してみます。

CodeBuild を確認してみると、無事ビルドが実行されましたね。

一度目は GitHub ウェブフック側のトリガーがプッシュイベントのみとなっており期待通り動作しなかったのですが見直してみたところ無事動作させることが出来ました。

さいごに

本日は AWS CodeBuild + GitHub Webhook 連携でウェブフックの手動構成オプションを使ってみました。

GitHub + CodeBuild 構成は個人的にはよく見る構成なので、自動構成が使えないシーンの選択肢として覚えておくと良いですね。
公式ドキュメントでは Content-Type までは言及されていましたがウェブフックトリガーまでは言及されていませんでしたので、期待どおり動作しない時は自動構成されたウェブフックを参考に構成情報を見直してみると良いです。