在 AWS-CodePipeline 管道中使用两个源

问题描述 投票:0回答:2

我有一个具体案例,我不确定 AWS CodePipeline 是否可行。我无法在文档和谷歌中找到关于这种情况的任何信息。

所以我想知道我是否可以在管道中设置两个源(它可以在同一阶段或不同阶段)。

这是我的用例:

  • 我希望我的管道在我的 s3 存储桶中修改文件(特定对象)时启动
  • 当这个文件发生变化并触发管道时,我想克隆一个codecommit存储库,然后处理构建和其他阶段。
  • 另一方面,当我的 codecommit 存储库的主分支上有一个提交时,我希望管道启动并构建我的源代码。
  • 所以应该在更改来自 s3 或代码提交时触发管道
  • 我不想在我的 codecommit 存储库中对 s3 文件进行版本控制,因为除了使用 git 存储库的开发团队之外,其他团队应该对其进行加密和使用
  • 无论何时我的管道启动,无论是来自 s3 存储桶更改还是代码提交推送,我都应该从存储库中获取提交以用于构建目的。

是否可以如上所述在管道中使用两个源操作?如果是,如何实现?

amazon-web-services continuous-integration continuous-delivery aws-codepipeline
2个回答
15
投票

是的。 AWS CodePipeline 可以有两个来源。或者就此而言很多。这两个来源必须在您的第一阶段。

然后在您的构建阶段属性中,您需要告诉它您需要两个来源。

然后告诉构建项目哪个是你的主要来源。这将是您希望构建项目执行代码构建的项目。

从您的构建规范或您调用的任何脚本,然后您可以通过引用访问源目录:

  • $CODEBUILD_SRC_DIR_SourceOutput1

  • $CODEBUILD_SRC_DIR_SourceOutput2

只需将上面的 SourceOutputX 替换为您从源阶段调用的输出即可。

我找到了以下包含更多信息的链接: https://docs.aws.amazon.com/codebuild/latest/userguide/sample-multi-in-out.html


13
投票

是的,CodePipeline 允许在单个管道中执行多个源操作。任一源的更改都将触发管道执行。需要知道的是,每次管道执行都会为这两个操作提取最新的源代码(而不仅仅是触发管道执行的更改)。

© www.soinside.com 2019 - 2024. All rights reserved.