【问题标题】:Trigger an AWS CodePipeline on every new pull request in GitHub repo在 GitHub 存储库中的每个新拉取请求上触发 AWS CodePipeline
【发布时间】:2020-02-23 18:33:22
【问题描述】:

我组织中的源代码在 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 工具链中有任何新功能可以让这一切变得简单,那么很高兴知道。

谢谢!

【问题讨论】:

    标签: amazon-web-services continuous-integration aws-codepipeline


    【解决方案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/

    【讨论】:

      猜你喜欢
      • 2020-03-28
      • 2020-07-19
      • 2012-02-17
      • 2019-12-21
      • 1970-01-01
      • 2018-06-02
      • 1970-01-01
      • 2019-07-28
      • 2019-03-02
      相关资源
      最近更新 更多