AWS CloudFormation テンプレートを使用してウェブフックイベントをフィルタリングするには、AWS CodeBuild プロジェクトの FilterGroups
プロパティを使用します。以下の YAML 形式の AWS CloudFormation テンプレート部分によって、2 つのフィルタグループが作成されます。また、一方または両方が true と評価されると、ビルドがトリガーされます。
-
最初のフィルタグループでは、アカウント ID
^refs/heads/main$
を持たない Bitbucket ユーザーが、正規表現12345
と一致する Git 参照名を持つブランチに対してプルリクエストを作成または更新することを指定します。 -
2 番目のフィルタグループでは、正規表現
^refs/heads/.*
と一致する Git 参照名を持つブランチに対するプッシュリクエストを作成することを指定します。 -
3 番目のフィルタグループでは、正規表現
\[CodeBuild\]
に一致する HEAD コミットメッセージを使用してプッシュリクエストを指定します。
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: BITBUCKET
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/.+