在 SourceVersion 中:在 CodeBuild 项目中设置了 ${BranchName}。我认为这会将所有 Push & Pull Request 的范围仅限于 ${BranchName} 目标分支。但显然不是。我看到每个分支上的每个提交都会触发 GitHub Webhook 到 CodeBuild 并导致它构建每个提交!不是我想要的。
所以然后在过滤器中我试图指定:
Triggers:
Webhook: true
FilterGroups:
- - Type: EVENT
Pattern: PULL_REQUEST_MERGED
- Type: BASE_REF
Pattern: !Sub "refs/heads/${BranchName}$"
ExcludeMatchedPattern: false
- Type: FILE_PATH
Pattern: ^webserver/
- - Type: EVENT
Pattern: PUSH
- Type: HEAD_REF
Pattern: !Sub "refs/heads/${BranchName}$"
ExcludeMatchedPattern: false
- Type: FILE_PATH
Pattern: ^webserver/
现在,不会触发任何构建。GitHub Webhook 收到来自 CodeBuild 的响应:没有为指定的有效负载触发构建。显然,过滤器不像记录的那样工作。所以我的问题是 SourceVersion 和 Webhooks 之间应该去哪里,以便仅在推送更改或将拉取请求合并到我的目标分支时触发构建的目标?