我们在 Visual Studio Online 中有一个团队项目,它使用由不同开发团队维护的多个存储库。
E.g.
Common repo - common framework, libraries
App1 repo - First application
App2 repo - Second application
主要愿望
App1、App2 团队依赖通用项目/程序集来实现基本功能。我们发现为 VSO(在 Visual Studio 2013 中)配置构建定义似乎只关注单个 Git 存储库。
如何从多个存储库中提取代码源来执行复合构建?编译通用项目,使程序集可供依赖的应用程序项目引用等。甚至可能从依赖项应该处理的通用存储库中提取特定版本(标签)。
目前,我们已经明确地将通用程序集预编译并打包为特定版本,然后相关解决方案将其作为固定二进制库 Assets 包含在它们自己的存储库中。
高级欲望
这些应用程序实际上是一个更大系统的子系统。如何让单个构建定义以统一的顺序构建来自所有这些不同存储库的代码?
最佳答案
我会以不同的方式解决这个问题。
首先获取通用框架/库代码的编译输出并从中创建一个 NuGet 包。然后在您的 App1 和 App2 应用程序中引用该 NuGet 包。
有很多选项可以使 NuGet 易于使用,例如私有(private) MyGet 提要。 MyGet 也有一篇关于他们的帖子 VSO integration例如,但是您真正需要的只是一种方法,让其他应用程序可以使用通用/框架 nuget 包。
请注意,这种方法还将有助于版本控制和依赖项管理,并且无需分阶段构建管道,因为您可以构建彼此独立的框架和应用程序。
关于git - VSO 构建定义以从多个存储库和多步骤构建和引用中检索代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26134097/