amazon-web-services - 在 GitHub 存储库中的每个新拉取请求上触发 AWS CodePipeline
问题描述
我组织中的源代码在 GitHub 存储库中进行管理。目前,我们的 CI 流程使用 AWS CodePipeline,如下所示:
- Webhook 检测特定 git 分支中的代码更改
- 然后将更新的分支用作 AWS CodeBuild 的输入
- 使用 Elastic Beanstalk 将完成的构建部署到我们的一个暂存环境中
- 测试在 Elastic Beanstalk 环境中运行。
我们想在我们的 git 存储库中添加对新拉取请求的检测。每当在我们的 repo 中创建新的 PR,我们希望通过上面的 CodePipeline 自动触发构建到 EB 环境。
我们的障碍:
- 查看 CodePipeline 中 GitHub Webhooks 的可用设置,我们找不到指定管道触发器应该是新 PR 的方法。
- 在任何情况下,CodePipeline 的 GitHub 源都必须是特定的分支。我们希望在任何分支中都能检测到 PR。
这里最好的方法是什么?我已经看到一些正在讨论的方法,但其中大多数似乎都在繁琐/高维护方面。如果 AWS 工具链中有任何新功能可以让这变得简单,那么很高兴知道。
谢谢!
解决方案
解决此问题的最佳方法似乎是使用参数化 CloudFormation 堆栈为每个 PR 创建一个 CodePipeline。
基本上这些步骤是:
- 使用 CloudFormation 定义您的 CodePipeline,并具有一个标识环境的参数 - Prod、QA、PR_xyz 等。
- 设置 CodeBuild 以触发对 GitHub 存储库的任何更改。创建新 PR 时,让 CodeBuild 基于您的 CloudFormation 模板构建新的 CodePipeline。创建 CloudFormation 堆栈时,提供 PR 的名称作为环境名称。
此处描述了详细步骤:https ://moduscreate.com/blog/track-git-branches-aws-codepipeline/
推荐阅读
- uwp - 如何在 HockeyApp 上将电子邮件附加到崩溃日志
- javascript - Javascript Object.create:设置数据时内存会发生什么?
- java - Confluent Cloud 上的 Kafka 流:值为“600000”的“segment.ms”超出内部重新分区主题的最小限制 14400000
- google-api - 通过谷歌开发者控制台项目ID找出使用的电子邮件帐户
- arrays - 在scala中查找给定数组的最小值和最大值
- postgresql - 如何在非英语语言中使用 GraphQL 枚举?后记
- bash - 如何找到 bash 文件的位置?
- .net - PowerShell 中的进程、实例和运行空间
- jelastic - 无法登录 Jelastic intellij 插件
- javascript - 将数组的值从一个函数实例化为jquery中的另一个函数