使用多存储库体系结构的端到端测试构建CICD



我有一个包含数十个存储库的微服务架构。它部署在AWS上。我在不同的区域上有三个环境:dev、staging和prod。代码托管在VSTS/AAzure Devops上。

我被迫使用VSTS托管代码,并使用AWS CodePipeline进行部署。

我现在有这个双重CI设置。我在Azure DevOps中运行单元测试,触发AWS代码管道,该管道将通过Cloudformation部署架构。

现在,我想从每个环境的Pull Request中触发单元测试和端到端测试。

我必须能够部署来运行端到端测试,但我不确定如果测试不能通过已经部署的非工作架构,会发生什么。

存储库可以耦合,我希望能够触发多个CI并回滚它们。

什么是最佳解决方案:

1.

  • 将单元测试保留在VSTS中
  • 触发器代码管道部署
  • 等待所有代码管道执行并成功
  • 从VSTS端到端触发

2.

  • 从VSTS触发代码管道
  • 在CodePipeline中运行单元测试
  • 部署新体系结构
  • 等待所有部署执行并成功
  • 从CodePipeline运行e2e测试
  • 等待所有代码管道就绪并成功,然后将响应发送到VSTS以使CI正常

感谢您的帮助。

就我个人而言,我更喜欢选项2。

CodePipeline是一个很好的工具来协调整个工作流程。

此外,需要注意的是,当您说触发CodePipeline时,您很可能需要使用S3进行部署。通过等待成功,您将需要监控API成功执行的工作流。

第二个选项似乎是更好的选择:

  • 你几乎把所有的东西都放在一个地方——你不需要在CodePipeline和AzureDevops之间切换就能看到全貌
  • 它也应该更容易开发,是的,你可以在AzureDevops上使用web挂钩来触发管道,但你应该能够实现更好、更简单的控制,(主要(停留在一个供应商那里

想象一下,例如,当您需要在结束测试后回滚时,哪种方法会更好地支持这种情况?

最新更新