dro*_*n22 12 continuous-integration amazon-web-services aws-cloudformation devops aws-codebuild
如果在CodeBuild项目中使用Github存储库作为源,则该Branch Filter
选项允许仅为分支运行构建,分支的名称与特定正则表达式匹配.
在AWS管理控制台中,您可以在创建或编辑CodeBuild项目时配置分支过滤器:
对于awscli存在一个选项--update-webhook
(在此记录)
$ aws codebuild update-webhook --project-name myproject --branch-filter ^master$
Run Code Online (Sandbox Code Playgroud)
在CodeBuild中,cloudformation模板存在一个选项Triggers > Webhook
(此处记录),但此选项只是一个简单启用/禁用github webhook的布尔值.
Resources:
MyCodeBuildProject:
Type: AWS::CodeBuild::Project
Properties:
Name: myproject
...
Triggers:
Webhook: true
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,如何直接在云信息模板中定义分支过滤器,而无需执行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"
Run Code Online (Sandbox Code Playgroud)
然后,您只需使用 CodePipeline 集成定义您的 CodeBuild 项目:
BuildProject:
Type: "AWS::CodeBuild::Project"
Properties:
...
Artifacts:
Type: "CODEPIPELINE"
Source:
Type: "CODEPIPELINE"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3798 次 |
最近记录: |