我们有一个很长的运行版本,我们正试图将其分解为增量版本。代码是c#/ .net,jenkins作为构建管理器和TFS(visualstudio在线作为源代码控制)
所以架构看起来像:
因此,我们的想法是,如果在区域1中签入代码,则仅构建该区域的关联解决方案,并运行该区域的测试。 然后我们还会有一个构建所有内容的每晚构建。
我的问题是,Jenkins / TFS是否有可能检测到哪个代码区域已经签入并将变量(或变量列表)传递给构建脚本,该脚本告诉它构建/测试哪些项目吗
答案 0 :(得分:1)
Visual Studio Team Service(Visual Studio Online)支持Git和Team Foundation版本控制(TFVC)。
如果您使用TFVC进行版本控制,则VSTS可以检测已检入的代码区域。但是,它无法告诉Jenkins哪个区域已更新并构建。因此,替代方法是为三个区域创建三个Jenkins作业,并由三个VSTS服务挂钩触发。
例如,“Test”项目中有三个区域,因此文件夹结构将为:
$ /测试
--- /区域1
------ /&项目对接洽谈放大器;解
--- /区域2
------ /&项目对接洽谈放大器;解
--- / Area3中
------ /&项目对接洽谈放大器;解
您可以为Area1创建Jenkins服务挂钩,如下所示,以触发Area1的Jenkins作业:
在Jenkins中,更新Area1作业的设置以获取Area1的源文件:
现在,只有在签入Area1中的代码时,才能触发Area1的Jenkins作业。并重复上述步骤配置Area2和Area3的设置。
如果您使用Git进行版本控制。没有任何方法可以通过Git存储库中的区域文件夹触发构建,您需要将这三个区域分开并将它们放入三个Git存储库中。