繁体   English   中英

如何使用 AWS CodeCommit、CodeBuild、CodePipeline 基于另一个管道成功调用管道

[英]How to invoke a pipeline based on another pipeline success using AWS CodeCommit, CodeBuild, CodePipeline

所需的行为如下:

  • 推送代码更改
  • 为每个无服务器组件运行单元测试
  • 如果所有测试都成功,将组件部署到 Staging 环境并将构建标记为成功
  • 聆听此更改并使用 Gherkin 运行验收测试套件
  • 如果所有测试都成功,将组件部署到 UAT/Prod 环境中并将构建标记为成功

所需的解决方案将有两个管道,第二个由第一个成功触发。

如果您有任何其他想法,我会很高兴听到!

提前致谢

我为第二个管道触发器提出的解决方案如下:

  • 将第二个管道源设为 S3(不是 CodeCommit)。 这将确保只有在将特定命名的文件(对象键)推送到 Amazon S3 时,此管道才会启动。
  • 在第一个 CodePipeline 的末尾添加一个 Lambda function,此时一切都必须成功触发。
  • 让 Lambda 复制您为第一个管道构建的工件并将其放置在存储桶中,并使用第二个存储桶源中引用的密钥。

为了保持清洁,为每个管道使用单独的桶。

假设两个 CodePipelines 在同一个帐户中运行。 您可以在 buildspec.yml 中添加“post_build”阶段。

在 post_build 阶段,您可以使用 AWS SDK 命令触发第二个 CodePipeline。

  build:
        commands:
            # npm pack --dry-run is not needed but helps show what is going to be published
            - npm publish
    post_build:
        commands:
            - aws codepipeline start-pipeline-execution --name <codepipeline_name>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM