如何在AWS CodeBuild云形态模板中设置分支过滤器选项?

问题描述 投票:12回答:2

如果使用Github存储库作为CodeBuild项目中的源,则Branch Filter选项允许仅为分支运行构建,分支的名称与特定正则表达式匹配。

  1. AWS管理控制台

在AWS管理控制台中,您可以在创建或编辑CodeBuild项目时配置分支过滤器:

AWS console

  1. AWS CLI

对于aws cli存在一个选项qazxsw poi(记录qazxsw poi)

--update-webhook
  1. CloudFormation

在CodeBuild中,cloudformation模板存在一个选项here(记录为 $ aws codebuild update-webhook --project-name myproject --branch-filter ^master$ ),但是这个选项只是一个简单的启用/禁用github webhook的布尔值。

Triggers > Webhook

所以我的问题是,如何直接在云信息模板中定义分支过滤器,而不必随后执行awscli命令或使用AWS管理控制台?

amazon-web-services continuous-integration amazon-cloudformation devops aws-codebuild
2个回答
1
投票

您可以尝试使用AWS CodePipeline

here

然后,您只需要使用CodePipeline集成定义CodeBuild项目:

Resources:
    MyCodeBuildProject:
    Type: AWS::CodeBuild::Project
    Properties:
        Name: myproject
        ...
        Triggers:
            Webhook: true

1
投票

这是使用触发器和webhook过滤器的最小示例,过滤器组模式也可以像 Stages: - Name: "Source" Actions: - Name: "Checkout" ActionTypeId: Category: "Source" Owner: "ThirdParty" Provider: "GitHub" Version: "1" Configuration: Owner: !Ref "UsernameOrOrg" Repo: !Ref "ProjectName" Branch: "master" OAuthToken: !Ref "GitHubOAuthToken" OutputArtifacts: - Name: "checkout" - Name: "Build" Actions: - Name: "Build" ActionTypeId: Category: "Build" Owner: "AWS" Provider: "CodeBuild" Version: "1" Configuration: ProjectName: !Ref "BuildProject" InputArtifacts: - Name: "checkout"

BuildProject:
    Type: "AWS::CodeBuild::Project"
    Properties:
       ... 
        Artifacts:
            Type: "CODEPIPELINE"
        Source:
            Type: "CODEPIPELINE"

另见:^refs/heads/.*

© www.soinside.com 2019 - 2024. All rights reserved.