Si desea usar una plantilla de AWS CloudFormation para filtrar eventos de webhooks, utilice la propiedad FilterGroups
del proyecto de AWS CodeBuild. El siguiente fragmento con formato YAML de una plantilla AWS CloudFormation crea dos grupos de filtros. Juntos, desencadenan una compilación cuando uno de los grupos o los dos se evalúan como true:
-
El primer grupo de filtros especifica las solicitudes de extracción que un usuario de Bitbucket que no tiene el ID de cuenta
12345
crea o actualiza en ramificaciones con nombres de referencia de Git que coinciden con la expresión regular^refs/heads/main$
. -
El segundo grupo de filtros especifica solicitudes de inserción que se crean en ramificaciones con nombres de referencia de Git que coinciden con la expresión regular
^refs/heads/.*
. -
El tercer grupo de filtros especifica una solicitud de inserción con un mensaje de confirmación del encabezado que coincida con la expresión regular
\[CodeBuild\]
.
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/.+