目前,亚马逊网络服务CodeStar设置默认python项目的方式是定义一个管道,初始源代码阶段如下所示;
这里的分支名称是master
,因此只要有新的更改合并到主分支中,管道就会触发。我还做了一次成功的尝试,将分支名称更改为SLS-2
,并在此SLS-2
分支上推送提交时触发管道...太棒了!但我想要的是在任何分支的每个提交上运行管道。当然,在那之后,根据分支是否是主分支来设置手动和自动阶段。
我知道在GitLab中,我们可以通过标记来指定每个阶段
stage: dockerize
script:
- echo 'I will run this only on master branch'
only:
- master
- tags
或者我可以添加带有- master
的except
标签,以允许在除master之外的所有分支上使用此阶段触发器。我如何使用亚马逊网络服务CodePipeline做到这一点?请提个建议。
发布于 2019-09-10 02:02:13
CodePipeline最适合于发布自动化,当使用CodePipeline时,建议有一个单独的" release“分支,可以将准备发布的更改合并到其中。
拥有一个“主发布”分支将确保您不会遇到意外部署一个分支中的旧更改覆盖另一个分支中的新更改的问题,从而恢复较新的更改。
如果您想在合并到发布分支之前运行验证步骤,那么一个好的选择是结合使用CodeBuild和CodePipeline。例如,you can configure CodeBuild to automatically run on pull requests。
在拉取请求合并之后,您还可以在CodePipeline中重用相同的CodeBuild配置来运行相同的构建和测试步骤,作为发布过程的一部分。
https://stackoverflow.com/questions/57854853
复制相似问题