【发布时间】:2021-02-05 03:06:10
【问题描述】:
我有一个单独的 repo,它被分割成多个项目,每个项目都有一个生成 Docker 映像的构建。我已将 Azure devops 配置为在每个项目的正确路径上触发,以便在它们的子目录更改时获得正确的图像构建。一个 PR 可以触发一个或多个图像的构建。
构建完所有映像后,我想触发一个集成测试作业,该作业启动构成我的服务的所有映像。如果 PR 没有更改,它应该运行 service:latest 而不是构建的那些。如何创建一个在其他每个管道完成并知道要使用哪个映像版本之前不会启动的测试管道?对于图像,我想我可以在图像标签中使用 PR 编号或提交哈希值,如果该图像不存在,则恢复为 service:latest。
尚不清楚的是如何让集成测试作业等待所有相关(理想情况下并行化)构建完成。我考虑了具有不同构建作业的单个管道的想法,但这会产生另一个问题,即希望为每个构建工件输出独立触发 CD。我从不想重新部署未更改的映像,并且我希望能够跟踪已更改的映像的部署,因此所有构建的单个 CD 是一个坏主意。
【问题讨论】:
标签: azure-devops