如果使用 Github 存储库作为 CodeBuild 项目中的源,则 Branch Filter
选项允许仅针对名称与特定正则表达式匹配的分支运行构建。
- AWS 管理控制台
在 AWS 管理控制台中,您可以在创建或编辑 CodeBuild 项目时配置分支过滤器:
- AWS CLI
对于 awscli 存在一个选项 --update-webhook
(记录为 here )
$ aws codebuild update-webhook --project-name myproject --branch-filter ^master$
- 云形成
在 CodeBuild cloudformation 模板中存在一个选项 Triggers > Webhook
(记录为 here ),但此选项只是一个 bool 值,用于简单启用/禁用 github webhook。
Resources:
MyCodeBuildProject:
Type: AWS::CodeBuild::Project
Properties:
Name: myproject
...
Triggers:
Webhook: true
所以我的问题是,如何直接在 cloudformation 模板中定义分支过滤器,而无需随后执行 awscli 命令或使用 AWS 管理控制台?
最佳答案
您可以尝试使用 AWS CodePipeline
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"
然后您只需使用 CodePipeline 集成定义您的 CodeBuild 项目即可:
BuildProject:
Type: "AWS::CodeBuild::Project"
Properties:
...
Artifacts:
Type: "CODEPIPELINE"
Source:
Type: "CODEPIPELINE"
关于amazon-web-services - 如何在 AWS CodeBuild cloudformation 模板中设置分支筛选器选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50857928/