动态更改AWS CodePipeline上的分支

问题描述 投票:1回答:3

我正在寻找一个很好的解决方案,如何在CodePipeline中运行参数化(自定义)构建,其中分支可以动态更改?

关于问题的一点背景:我需要一个将在某个分支上启动的按需环境。我们已经将Bamboo CI服务器用于部分基础架构,这也可以通过Jenkins中的自定义构建轻松实现。

所以基本上我需要一种方法来在AWS中的CodePipeline上使用branch作为变量来触发构建。

amazon-web-services continuous-integration aws-codepipeline
3个回答
2
投票

目前,CodePipeline不支持基于分支的构建。通常,CodePipeline最适合运行验证并自动释放“发布”分支。

预合并验证的一个选项是使用CodeBuild拉取请求支持来验证拉取请求,然后使用CodePipeline验证合并代码:https://aws.amazon.com/about-aws/whats-new/2017/09/aws-codebuild-now-supports-building-github-pull-requests/


1
投票

对于您的用例,最好专门为每个分支创建一个管道,因为听起来您的分支将具有给定环境的固定名称。

这在分支代表环境的情况下很有效,其中CodePipeline正在为更多动态分支执行持续交付,例如功能分支/拉取请求。

对于后一种情况,我使用CodeBuild处理拉取请求,然后在S3存档中发布构建工件,然后我使用它来触发CodePipeline以运行集成测试和分段部署。在此过程中有一些陷阱,但它允许您利用CodePipeline的一些更强大的功能(例如,一次只能运行单个阶段执行,这对于具有共享资源的环境很重要)。


0
投票

我们可以通过以下方法获得动态分支支持。

我们在组织中遵循这种方法,并且效果很好。

AWS代码管道的一个限制是我们必须在创建管道时指定分支名称。但是,我们可以使用下面显示的架构来克服此问题。

flow diagram

创建一个Lambda函数,它将GitHub web-hook数据作为输入,使用boto3将其与AWS管道集成(拉动管道并更新),使用API​​网关将Lambda函数作为休息调用进行调用,最后创建GitHub存储库的Web钩子。

外部链接:

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