我有一个具体案例,我不确定 AWS CodePipeline 是否可行。我无法在文档和谷歌中找到有关此类场景的任何信息。
所以我想知道是否可以在管道中设置两个源(可以在同一阶段或不同阶段)。
这是我的用例:
- 我希望在我的 s3 存储桶中修改文件(特定对象)时启动管道
- 当此文件更改并触发管道时,我想克隆代码提交存储库,然后处理构建和其他阶段。
- 另一方面,当我的代码提交存储库的主分支上有提交时,我希望管道启动并构建我的源代码。
- 因此,当更改来自 s3 或代码提交时,应该触发管道
- 我不想在我的 Codecommit 存储库中对 s3 文件进行版本控制,因为它应该被加密并由其他团队而不是使用 git 存储库的开发团队使用
- 每当我的管道启动时,无论是来自 s3 存储桶更改还是代码提交推送,我都应该从存储库中获取提交以用于构建目的。
是否可以如上所述在管道中使用两个源操作?如果是,如何实现?
最佳答案
是的。 AWS CodePipeline 可以有两个源。或许多与此相关的事情。这两个来源必须位于您的第一阶段。
然后在构建阶段属性中,您需要告诉它您需要两个源。
然后告诉构建项目哪个是您的主要来源。这将是您希望构建项目执行代码构建的项目。
从您的构建规范或您调用的任何脚本中,您可以通过引用访问源目录:
$CODEBUILD_SRC_DIR_SourceOutput1
$CODEBUILD_SRC_DIR_SourceOutput2
只需将上面的 SourceOutputX 替换为您所说的源阶段的输出即可。
我发现以下链接包含更多信息: https://docs.aws.amazon.com/codebuild/latest/userguide/sample-multi-in-out.html
关于amazon-web-services - 在 AWS-CodePipeline 管道中使用两个源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49925733/