AWS CloudFormation 템플릿을 사용하여 Webhook 이벤트를 필터링하려면 AWS CodeBuild 프로젝트의 FilterGroups
속성을 사용합니다. 다음 AWS CloudFormation 템플릿의 YAML 형식 부분은 두 개의 필터 그룹을 생성합니다. 이들은 하나 또는 둘 모두 true로 평가되면 빌드를 트리거합니다.
-
첫 번째 필터 그룹은 계정 ID가
12345
와 일치하지 않는 Bitbucket 사용자가 정규식^refs/heads/main$
와 일치하는 Git 참조 이름을 갖는 브랜치에서 생성 또는 업데이트한 pull 요청을 지정합니다. -
두 번째 필터 그룹은 정규식
^refs/heads/.*
와 일치하는 Git 참조 이름을 갖는 브랜치에서 생성되는 push 요청을 지정합니다. -
세 번째 필터 그룹은 정규식
\[CodeBuild\]
와 일치하는 헤드 커밋 메시지에서 push 요청을 지정합니다.
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/.+