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

nix*_*ind 5 continuous-integration amazon-web-services continuous-delivery aws-codepipeline

我有一个特定的案例,我不确定是否可以使用AWS CodePipeline,并且通过谷歌搜索在文档和事件中都没有找到关于此的任何信息。

因此,我想知道是否可以在管道中设置两个源(它可以处于同一阶段,也可以处于不同阶段)。

这是我的用例:

  • 我希望在s3存储桶中修改文件(特定对象)时启动管道
  • 当此文件更改并触发管道时,我想克隆一个代码提交存储库,然后处理构建和其他阶段...
  • 另一方面,当我的代码提交存储库的master分支上有一个提交时,我希望管道启动并构建我的源代码。
  • 因此,当更改来自s3或codecommit时,应触发管道
  • 我不想在我的代码提交存储库中对s3文件进行版本控制,因为它应该由其他团队(而不是与git存储库一起工作的开发团队)加密和使用
  • 每当我的管道从s3桶更改或代码提交推送开始时,我都应该从存储库中获取提交以进行构建...

我不知道我的目标规范是否明确,如果可以,可以如上所述在管道中使用两个源操作,以及如何实现此目标?

先感谢您。

干杯,吴ug

Ale*_*one 8

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

在此处输入图片说明

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

在此处输入图片说明

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

在此处输入图片说明

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

  • $CODEBUILD_SRC_DIR_SourceOutput1

  • $CODEBUILD_SRC_DIR_SourceOutput2

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

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


Aar*_*ron 6

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