【发布时间】:2019-02-11 10:39:48
【问题描述】:
我们使用 AWS CodeBuild 分支过滤器选项来触发构建,仅在执行 PUSH to Master 时触发。但是,最近显然删除了“分支过滤器”选项,并添加了“Webhook 事件过滤器组”。他们应该提供我期望的更多功能,但我看不到如何制作“分支过滤器”。
有人可以帮忙吗?
【问题讨论】:
标签: amazon-web-services aws-codebuild
我们使用 AWS CodeBuild 分支过滤器选项来触发构建,仅在执行 PUSH to Master 时触发。但是,最近显然删除了“分支过滤器”选项,并添加了“Webhook 事件过滤器组”。他们应该提供我期望的更多功能,但我看不到如何制作“分支过滤器”。
有人可以帮忙吗?
【问题讨论】:
标签: amazon-web-services aws-codebuild
我在任何地方都看不到此更改被标记,但它对我有用,将事件类型设置为 PUSH 和 HEAD_REF 为
refs/heads/branch-name
根据
https://docs.aws.amazon.com/codebuild/latest/userguide/sample-github-pull-request.html
【讨论】:
您需要使用过滤器组,而不是branch_filters。
terraform (0.12+) 中的示例;
对于功能分支;
resource "aws_codebuild_webhook" "feature" {
project_name = aws_codebuild_project.feature.name
filter_group {
filter {
type = "EVENT"
pattern = "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_REOPENED"
}
filter {
type = "HEAD_REF"
pattern = "^(?!^/refs/heads/master$).*"
exclude_matched_pattern = false
}
}
}
对于master 分支。
resource "aws_codebuild_webhook" "master" {
project_name = aws_codebuild_project.master.name
filter_group {
filter {
type = "EVENT"
pattern = "PUSH"
}
filter {
type = "HEAD_REF"
pattern = "^refs/heads/master$"
exclude_matched_pattern = false
}
}
}
所以他们都需要一个aws_codebuild_project。因此,每个存储库将有 2 个 CodeBuild 项目。
branch_filter 在 CodeBuild 中不起作用,但仍可通过 UI 或 API 进行配置。 filter_groups 是具有所需逻辑的那个。
【讨论】: