删除了 AWS CodeBuild Branch 过滤器选项

AWS CodeBuild Branch filter option removed

我们正在使用 AWS CodeBuild Branch 过滤器选项,仅在进行 PUSH to Master 时触发构建。但是,最近显然删除了 'Branch filter' 选项并添加了 'Webhook event filter group' 。他们应该提供更多我期望的功能,但我看不出如何制作 'Branch filter'。

有人可以帮忙吗?

我在任何地方都看不到此更改的标记,但它对我有效,将事件类型设置为 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_group符合要求的逻辑。