背景:TFS2015中的C#.NET和VC源代码控制。 CI使用TFSBuilds。内部Proget服务器,已经从其他TFSBuilds发布了Nuget包。
我希望将一系列框架项目转移到他们自己的Git仓库中。以下是其结构示例供参考。
Framework.sln
IO.proj
Logging.proj
Other.proj
我的困惑来自于如何设计CI构建(s?),以便只有那些已经更改的项目才会发布新的包。目前我有一个构建Framework.sln的CI构建,然后打包并将其中的所有输出发布到Proget,使用BuildNumber增加包版本。
显然这是一个问题,因为对Logging.proj的单一更改将启动CI构建,我最终会发布每个包的新版本,即使只有一个更改为1.在我们切换到TFSBuild之前我们让MSBuild运行bitdiffer来比较差异并自动增加版本号。
我想知道的是,每个项目都必须有一个CI构建,TFS可以使用其他东西处理这种情况,或者我错过了一些非常明显的东西。
注意:我已经将分支策略排除在所有这些之外,因为我认为这不重要,无论分支机构如何管理这个问题仍然会发生,但如果我错了,请告诉我。