Stanislav Ivanov
Stanislav Ivanov

Reputation: 443

AWS CodeBuild Branch filter option removed

We are using AWS CodeBuild Branch filter option to trigger a build only when a PUSH to Master is made. However, The 'Branch filter' option has been apparently removed recently and 'Webhook event filter group' are added. They should provide more functionality I expect, but I cannot see how to make the 'Branch filter'.

Can someone help?

Upvotes: 6

Views: 2505

Answers (2)

Emre Erkunt
Emre Erkunt

Reputation: 121

You need to use filter groups, instead of branch_filters.

Example in terraform (0.12+);

For feature branches ;

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
    }
  }
}

For master branch.

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
    }
  }
}

So they both requires an aws_codebuild_project per each. Thus you will have 2 CodeBuild projects per repository.

branch_filter does not work in CodeBuild, although it is still configurable via UI or API. filter_groups are the one that has the required logic.

Upvotes: 4

Joe Pietroni
Joe Pietroni

Reputation: 826

I couldn't see this change flagged anywhere, but it worked for me setting Event Type as PUSH and HEAD_REF to be

refs/heads/branch-name

as per

https://docs.aws.amazon.com/codebuild/latest/userguide/sample-github-pull-request.html

Upvotes: 7

Related Questions