如何在 VSTS 中构建相互依赖的解决方案

How to build interdependent solutions in VSTS

我的项目结构如下:

Repos\WebApi

Repos\WebPortal

Repos\BackendService

Repos\Extensions

它们每个都在自己的存储库中,有自己的解决方案,但它们都依赖于 Extensions 项目。

过去我使用过 CCNET 并能够构建扩展项目,从构建中保存工件,然后使用第一个构建中的工件在其所有依赖项上触发构建。

我的问题是:如何在 VSTS 中执行此操作。或者,如果答案是你不能,我应该如何构建我的项目以保持干燥、SRP 和自动化?我不想将所有项目都添加到一个解决方案中(实际上有更多涉及和多层次的依赖关系,但为了说明问题我简化了它)

据我所知,我不能使用来自其他构建的构建工件,我不能将多个源存储库添加到 VSTS 中的构建,我也看不到在另一个构建完成时触发构建的方法.

这让我觉得我在做一些根本性的错误。

有很多方法可以做到:

• 为扩展项目创建包并上传到源,例如 VSTS 源:Package Management in VSTS and TFS,然后在构建期间恢复包

• 与您所说的方法类似:添加 下载构建工件 任务到构建定义以下载扩展构建的工件。您还可以通过 PowerShell 调用 Builds REST API 来获取构建工件。

• 如果您使用的是 TFVC 存储库,则可以通过在构建的 Get Sources 部分 中指定额外的 Workspace 映射 来获取扩展项目定义(直接指定,可以点击...到select)

• 使用 Download Artifacts-External TFS Git/TFVC 任务下载额外的存储库

• 如果它是 Git 存储库,则使用 git submodule

关于从另一个构建触发构建,您可以使用Trigger Build task