对 GitHub 存储库中的每个新拉取请求触发 AWS CodePipeline

a-k*_*c-l 7 continuous-integration amazon-web-services aws-codepipeline

我的组织中的源代码在 GitHub 存储库中进行管理。目前,我们的 CI 流程使用 AWS CodePipeline,如下所示:

  • Webhook 检测特定 git 分支中的代码更改
  • 然后,更新后的分支将用作 AWS CodeBuild 的输入
  • 使用 Elastic Beanstalk 将完成的构建部署到我们的临时环境之一
  • 测试在 Elastic Beanstalk 环境中运行。

我们希望在 git 存储库中添加对新拉取请求的检测。每当在我们的存储库中创建新的 PR 时,我们都希望通过上面的 CodePipeline 自动触发 EB 环境的构建。

我们的障碍:

  • 查看 CodePipeline 中 GitHub Webhooks 的可用设置,我们找不到指定管道的触发器应该是新 PR 的方法。
  • 无论如何,CodePipeline 的 GitHub 源必须是特定分支。我们希望在任何分支中都能检测到 PR。

这里最好的方法是什么?我已经看到了一些正在讨论的方法,但其中大多数似乎都比较麻烦/维护成本高。如果 AWS 工具链中有任何新功能可以让这一切变得简单,那么很高兴知道。

谢谢!

bik*_*868 1

解决此问题的最佳方法似乎是使用参数化的 CloudFormation 堆栈为每个 PR 创建一个 CodePipeline。

基本上步骤是:

  1. 使用 CloudFormation 定义您的 CodePipeline 并具有标识环境的参数 - Prod、QA、PR_xyz 等。
  2. 设置 CodeBuild 以触发对 GitHub 存储库的任何更改。创建新 PR 时,让 CodeBuild 基于您的 CloudFormation 模板构建新的 CodePipeline。创建 CloudFormation 堆栈时提供 PR 的名称作为环境名称。

详细步骤如下: https: //moduscreate.com/blog/track-git-branches-aws-codepipeline/