设置代码管道以将不同的分支部署到不同的 Elastic Beanstalk 环境的"right"方法是什么?



这是一个基本问题:我有一个基本的代码管道设置如下:

  1. 源为github分支(master)
  2. 使用AWS代码构建
  3. 部署到Elastic Beanstalk->部署到appname prod环境

这一切都很有道理,也很简单。

现在我想为staging做同样的事情:有一个staging分支,当它被提交到时,Codebuild会构建它,并将它部署到appname staging环境中。

做这件事的正确方法是什么?

我应该只有两个不同的管道吗(一个用于生产,一个用于暂存)?

或者有没有一种好的方法可以将这两种行为(以及可能的第三种行为)放在同一个管道中?

谢谢!

根据我的经验,每个分支都需要一个管道。可能是每个环境的管道结构不同或相同的情况。

如果您选择进行CI/CD设置,那么非生产管道将包括测试等阶段,假设每个阶段都通过了,那么部署将自动部署到非生产弹性阀杆环境。

对于生产环境,您可能希望包括一个手动批准阶段,从而拥有一个连续的交付管道。或者,如果可以进行自动部署,则可以使用非prod的管道格式。

如果你想反复使用手动创建的管道,这是一个很好的技巧。是通过cli提取它的cloudformation模板。

aws codepipeline getpipeline --name <name>

这为代码管道资源提供了一个云信息模板。您需要进行一些编辑,但如果它引用了回购和分支,您可以进行调整。您还可以将其参数化,以便轻松创建具有类似结构的许多管道。

祝你好运!

我与这个问题斗争了一段时间。CodePipeline只允许在第一步中使用源代码,这意味着您不能在同一管道中为开发执行源代码构建-部署步骤,然后再为更高的环境重复这些步骤。

最新更新