我正在尝试为TFS服务器规划构建定义,并且我遇到了一个问题/问题,我希望在继续之前澄清一下。
这是我们项目设置的简化版本,对于我在这台机器上没有UML工具的粗糙感到抱歉:)
我想要完成的是正确的构建定义,以便:
我可能会使用gated check-ins来防止在构建中断时提交源代码控制。
已经有一段时间了,但我相信当时我有3个构建定义:
大部分工作 ,但如果在解决方案1和依赖关系解决方案IIRC上发生单一签入,则解决方案1将构建两次。
虽然这是一个不便之处,但我并没有 来弄清楚它,所以知道如何以正确的方式做到这一点会很好。
答案 0 :(得分:5)
@Kritner我建议您从依赖项的输出创建一个NuGet包,并将其发布到内部NuGet存储库。解决方案1和解决方案2应该依赖于NuGet包。
这是在签入新来源时触发的一次构建拘留。
此时,如果您要使用新版本的依赖项,则尝试构建任一解决方案时都会收到通知。视觉工作室中的开发人员将能够选择这是否合适。
我建议您停下来让开发人员在升级时选择。但是你可以走得更远。
如果您使用类似MyGet的东西托管您的依赖项,您可以让它为构建创建一个触发器。您可以使用VSO和Service Hook执行此操作,或者您可以编写一些监视新包的内容,然后触发其他版本。如果只有在成功构建和测试时才发布包,则可以提高依赖性的质量。