amazon-web-services - 如何允许 AWS CodeCommit 从每个分支触发管道?
问题描述
目前,AWS CodeStar 设置默认 python 项目的方式是定义一个带有初始源阶段的管道,如下所示;
这里的分支名称是master
,因此每当有新的更改合并到主分支时,管道就会触发。我还成功尝试将分支名称更改为SLS-2
并在推送此分支上的提交时触发管道SLS-2
......太棒了!但我想要的是在任何分支的每一次提交上运行管道。当然,在那之后,根据天气设置手动和自动阶段,分支是否是主分支。
我知道在 GitLab 中,我们可以通过标签指定每个阶段
stage: dockerize
script:
- echo 'I will run this only on master branch'
only:
- master
- tags
或者我可以添加except
标签- master
以允许在除 master 之外的所有分支上触发此阶段。如何使用 AWS CodePipeline 做到这一点?请建议。
解决方案
CodePipeline 最适合发布自动化,在使用 CodePipeline 时,建议使用一个“发布”分支,将准备发布的更改合并到其中。
拥有一个“主版本”分支将确保您不会遇到问题,例如意外地将一个分支中的旧更改部署到不同分支中的新更改之上,从而恢复新更改。
如果您想在合并到发布分支之前运行验证步骤,那么一个不错的选择是将 CodeBuild 与 CodePipeline 结合使用。例如,您可以将 CodeBuild 配置为在拉取请求上自动运行。
您还可以在合并拉取请求后在 CodePipeline 中重复使用相同的 CodeBuild 配置来运行相同的构建和测试步骤作为发布过程的一部分。
推荐阅读
- flutter - 转换 json 地图
列出 - rstudio - RStudio 按钮“运行测试”用于更改用户目录('~')的测试
- ios - 动画启动屏幕缩放
- hellosign-api - HelloSign:角色 Me 和 Me(发送时)在模板中是什么意思?
- php - Angular 1.x 自动完成索引问题
- react-native - 单击链接后滚动到顶部反应本机
- javascript - 在 java 中使用谷歌地图的 containsLocation()
- python - Python - 将原始字符串(来自文件)视为代码编写的字符串
- android - libGDX:如何以小分辨率缩放纹理本身
- ruby - 用于传递块的 Ruby 语法