CodeBuildのGitHub Webhookフィルター こんな時こうする

April 4, 2020

はじめに

AWS CodeBuildプロジェクトをGitHubのWebhookトリガーで実行したいことがありました。
ややとっつきにくかったので、具体的な例をいくつか書いておきます。
※本投稿は2020年4月時点の挙動を前提としています

仕様

ここを読む。
GitHub ウェブフックイベントのフィルタリング - AWS CodeBuild
WebhookFilter - AWS CodeBuild

ケーススタディ1: developブランチに変更がpushされた時にビルドを開始する

GitHub Webhook ペイロード抜粋

Headers

...
X-GitHub-Event: push
...

Payload

{
  "ref": "refs/heads/develop",
  ...
}

CodeBuildプロジェクトでのフィルタリング設定

ケーススタディ2: masterブランチへのPullRequestがmergeされた時にビルドを開始する

GitHub Webhook ペイロード抜粋

Headers

...
X-GitHub-Event: pull_request
...

Payload

{
  "action": "closed",
  ...
  "pull_request": {
    ...
    "state": "closed",
    ...
    "base": {
      "ref": "master",
      ...
    },
    ...
    "merged": true,
    ...
  }
}

CodeBuildプロジェクトでのフィルタリング設定

まとめ

こんなノリだと分かれば、あとは前掲ドキュメントとにらめっこしながらいろいろできるかと思います。

@j_untanaka on Twitter

AWSCodeBuildGitHubCI/CD