我有一个像这样的项目结构:
回购\的WebAPI
回购\ WebPortal
回购\ BackendService
回购\扩展
每个都在自己的存储库中,有自己的解决方案,但所有这些解决方案都依赖于扩展项目。
在过去,我使用过CCNET并且能够构建Extensions项目,从构建中保存工件,然后使用第一次构建中的工件触发对所有依赖项的构建。
我的问题是:如何在VSTS中执行此操作。或者,如果答案是你不能,那么我应该如何构建我的项目以保持DRY,SRP和自动化?我不想在一个解决方案中添加所有项目(实际上还有更多涉及的项目和多个级别的依赖项,但为了说明问题我简化了它)
据我所知,我无法使用其他版本的构建工件,我无法在VSTS中为构建添加多个源代码库,也无法在完成后找到触发构建的方法另一个构建。
这让我觉得我在做一些根本错误的事情。
答案 0 :(得分:1)
有很多方法可以做到:
•为Extensions项目创建包并上传到Feed,例如VSTS Feed:Package Management in VSTS and TFS,然后在构建期间恢复包
•与您所说的类似:添加下载构建工件任务以构建定义以下载Extensions构建的工件。您还可以通过PowerShell调用Builds REST API来获取构建工件。
•如果您使用的是TFVC存储库,则可以通过在构建定义的获取源部分中指定其他工作区映射来获取扩展项目(直接指定,可以单击......选择)
•使用Download Artifacts-External TFS Git/TFVC任务
下载其他存储库•如果它是Git存储库,则使用git submodule。
关于来自其他版本的触发器构建,您可以使用Trigger Build task。