AWS CloudFormation テンプレートを使用してウェブフックイベントをフィルタリングするには、AWS CodeBuild プロジェクトの FilterGroups
プロパティを使用します。
GitHub ウェブフックイベントの詳細については、「GitHub ウェブフックイベント」を参照してください。
以下の YAML 形式の AWS CloudFormation テンプレート部分によって、2 つのフィルタグループが作成されます。また、一方または両方が true と評価されると、ビルドがトリガーされます。
-
最初のフィルタグループでは、アカウント ID
^refs/heads/main$
を持たない GitHub ユーザーが、正規表現12345
と一致する Git 参照名を持つブランチに対してプルリクエストを作成または更新することを指定します。 -
2 番目のフィルターグループでは、正規表現
READ_ME
に一致する Git 参照名を持つブランチで正規表現^refs/heads/.*
に一致する名前のファイルに対してプッシュリクエストが作成されることを指定します。 -
3 番目のフィルタグループでは、正規表現
\[CodeBuild\]
に一致する HEAD コミットメッセージを使用してプッシュリクエストを指定します。 -
4 番目のフィルタグループは、正規表現
\[CI-CodeBuild\]
に一致するワークフロー名を持つ GitHub Actions ワークフロージョブリクエストを指定します。
CodeBuildProject:
Type: AWS::CodeBuild::Project
Properties:
Name: MyProject
ServiceRole: service-role
Artifacts:
Type: NO_ARTIFACTS
Environment:
Type: LINUX_CONTAINER
ComputeType: BUILD_GENERAL1_SMALL
Image: aws/codebuild/standard:5.0
Source:
Type: GITHUB
Location: source-location
Triggers:
Webhook: true
FilterGroups:
- - Type: EVENT
Pattern: PULL_REQUEST_CREATED,PULL_REQUEST_UPDATED
- Type: BASE_REF
Pattern: ^refs/heads/main$
ExcludeMatchedPattern: false
- Type: ACTOR_ACCOUNT_ID
Pattern: 12345
ExcludeMatchedPattern: true
- - Type: EVENT
Pattern: PUSH
- Type: HEAD_REF
Pattern: ^refs/heads/.*
- Type: FILE_PATH
Pattern: READ_ME
ExcludeMatchedPattern: true
- - Type: EVENT
Pattern: PUSH
- Type: COMMIT_MESSAGE
Pattern: \[CodeBuild\]
- Type: FILE_PATH
Pattern: ^src/.+|^test/.+
- - Type: EVENT
Pattern: WORKFLOW_JOB_QUEUED
- Type: WORKFLOW_NAME
Pattern: \[CI-CodeBuild\]