【问题标题】:Trigger AWS CodePipeline by 2 webhooks?通过 2 个 webhook 触发 AWS CodePipeline?
【发布时间】:2020-08-08 15:18:41
【问题描述】:

我目前有一个 terraform 脚本,用于构建由 GitHub Webhook 触发的 AWS CodePipeline。它工作正常,更新到 repo 会触发构建。

我们还有一个包含一些内容的二级存储库。是否有可能通过 webhook 触发到该辅助存储库的相同管道?它应该做完全相同的事情(从第一个 repo 中提取相同的源并运行构建),但在更新到辅助 repo 时触发。

Terraform 允许您创建第二个 webhook 并将其附加到同一管道,但触发器似乎不起作用。

【问题讨论】:

  • 一个 CodePipeline 允许多个源操作。对任一源的更改都将导致管道的执行。要记住的是,管道的每次执行都会取出两个操作的最新源(不仅仅是一个导致管道执行的更改)。在 Terraform 中也应该是可编程的。
  • 就像@shariqmaws 说的,它绝对可以使用两个来源。我目前正在这样做(但使用 CDK)。但请记住,在 buildmachine 文件系统中不会有合并。源代码位于两个不同的目录中。

标签: amazon-web-services terraform webhooks githooks aws-codepipeline


【解决方案1】:

好的,我发现的一种方法(如这里建议的 cmets)是将辅助 GitHub webhook 连接到 CodePipeline webhook。但它变得棘手,我希望仅针对特定分支 match_equals = "refs/heads/{Branch}" 触发管道,因此为了使其正常工作,两个 repos 中的活动分支名称应该相同 - 不太现实。

所以我决定采用另一种方式 - 一个简单的 CodeBuild 项目与第二个 repo 挂钩,当触发该 repo 时,只需在主管道上运行 CLI aws codepipeline start-pipeline-execution

【讨论】:

  • 不错。由于非常先进的 GitHub webhook 配置支持,CodeBuild 在许多情况下都节省了时间。
  • 如果源分支在同一个仓库中,您是否知道如何实现这一点?两个具有相同源(主分支)的独立管道,仅当例如标签被推送时才会触发另一个......?
猜你喜欢
  • 2019-03-02
  • 1970-01-01
  • 2021-05-16
  • 2020-03-01
  • 1970-01-01
  • 2018-11-16
  • 1970-01-01
  • 2016-09-20
  • 2022-09-25
相关资源
最近更新 更多