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

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

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

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

这是我的用例:

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

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

最佳答案

是的。 AWS CodePipeline 可以有两个源。或许多与此相关的事情。这两个来源必须位于您的第一阶段。

enter image description here

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

enter image description here

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

enter image description here

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

  • $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/

相关文章:

node.js - 如何在nodejs aws-sdk模块中设置多个aws凭证?

continuous-integration - 破坏构建,为什么这是一件坏事?

尽管所有需求均已成功,但 GitHub Actions 作业被跳过

c# - 如何从 AzureDevOps Pipelines 中的解决方案缓存每个项目的 project.assets.json?

azure - 有条件地将 Azure 数据工厂管道部署到另一个资源组

continuous-integration - Gitlab CI : run job only if artifact exists

amazon-web-services - 无效的重定向 : domain must be added to the authorized domains list despite it being there

amazon-web-services - 通过 Cloudformation 在 AWS Config 中配置所有 AWS 托管规则

testing - 用于测试 ExtJs 应用程序的最佳测试工具,可以在持续集成服务器上轻松实现自动化

amazon-web-services - 来自带有 Debian 后缀的 EC2 实例的 Amazon SES 中继无法发送电子邮件