"right" 设置代码管道以将不同分支部署到不同 Elastic Beanstalk 环境的方法是什么?
What is the "right" way to set up code pipeline to deploy different branches to different Elastic Beanstalk environments?
这是一个基本问题:
我有一个基本的 codepipeline 管道设置如下:
- 源是 github 分支(master)
- 使用 AWS Codebuild 构建
- 部署到 Elastic Beanstalk -> 部署到 appname-prod 环境
这一切都很有道理而且很简单。
现在我想为暂存做同样的事情:有一个暂存分支,当它被提交时,Codebuild 构建它,并将它部署到 appname-staging 环境。
正确的做法是什么?
我应该只有两条不同的管道(一条用于生产,一条用于暂存)吗?
或者是否有一种好方法可以在同一管道中同时拥有这两种行为(可能还有第三种行为)?
谢谢!
根据我的经验,您需要每个分支都有一个管道。每个环境的流水线结构可能不同也可能相同。
如果您选择进行 CI/CD 设置,则非生产管道将包括测试等阶段,假设每个阶段都通过,然后将自动部署到非生产 elasticbeanstalk 环境。
对于生产环境,您可能希望包括一个手动审批阶段,从而拥有一个持续交付管道。或者,如果可以进行自动部署,您可以对非产品使用管道格式。
如果您希望一遍又一遍地使用手动创建的管道,这是一个不错的技巧。就是通过cli提取它的cloudformation模板。
aws codepipeline getpipeline --name <name>
这为您提供了 codepipeline 资源的 cloudformation 模板。您将需要进行一些编辑,但如果它引用了一个存储库和分支,您可以对其进行调整。您还可以对其进行参数化,以便您可以轻松创建许多具有相似结构的管道。
祝你好运!
我为这个问题纠结了一段时间。 CodePipeline 只允许第一步使用源代码,这意味着您不能为开发执行源代码构建部署步骤,然后在同一管道中为更高的环境重复这些步骤。
这是一个基本问题: 我有一个基本的 codepipeline 管道设置如下:
- 源是 github 分支(master)
- 使用 AWS Codebuild 构建
- 部署到 Elastic Beanstalk -> 部署到 appname-prod 环境
这一切都很有道理而且很简单。
现在我想为暂存做同样的事情:有一个暂存分支,当它被提交时,Codebuild 构建它,并将它部署到 appname-staging 环境。
正确的做法是什么?
我应该只有两条不同的管道(一条用于生产,一条用于暂存)吗?
或者是否有一种好方法可以在同一管道中同时拥有这两种行为(可能还有第三种行为)?
谢谢!
根据我的经验,您需要每个分支都有一个管道。每个环境的流水线结构可能不同也可能相同。
如果您选择进行 CI/CD 设置,则非生产管道将包括测试等阶段,假设每个阶段都通过,然后将自动部署到非生产 elasticbeanstalk 环境。
对于生产环境,您可能希望包括一个手动审批阶段,从而拥有一个持续交付管道。或者,如果可以进行自动部署,您可以对非产品使用管道格式。
如果您希望一遍又一遍地使用手动创建的管道,这是一个不错的技巧。就是通过cli提取它的cloudformation模板。
aws codepipeline getpipeline --name <name>
这为您提供了 codepipeline 资源的 cloudformation 模板。您将需要进行一些编辑,但如果它引用了一个存储库和分支,您可以对其进行调整。您还可以对其进行参数化,以便您可以轻松创建许多具有相似结构的管道。
祝你好运!
我为这个问题纠结了一段时间。 CodePipeline 只允许第一步使用源代码,这意味着您不能为开发执行源代码构建部署步骤,然后在同一管道中为更高的环境重复这些步骤。