我有一个TeamCity项目,其中包含以下构建配置:
说我知道是否需要通过更改某个文件deps.txt
来执行此操作。
这就是我想要做的事情:
deps.txt
发生了变化,我想运行构建1,然后是2,然后是3,然后是4。deps.txt
没有改变,我想运行构建2然后3然后运行4。我尝试将触发器放在构建配置上,如下所示:
+:deps.txt
-:deps.txt
但如果提交包括更改deps.txt 和其他文件,则配置1和2会同时触发,这意味着配置2将失败。
在TeamCity中有一种简单的方法吗?
答案 0 :(得分:2)
您可以将1合并为2,然后对于收集依赖项的构建步骤1,编写一个使用teamcity.build.changedFiles.file
属性的自定义脚本(请参阅TeamCity docs)以检查deps.txt是否具有实际上是否改变了,然后收集依赖关系。然后,从2开始的其余构建步骤将正常进行。
答案 1 :(得分:2)
我想提出一个不同的方法:
一个。创建重复的构建配置
湾触发上一次构建的整个构建链。
第一个构建配置链:
收集依赖关系:无触发器
构建:对同一构建链上的1的快照和工件依赖关系,无触发器
测试:对同一构建链上的2的快照和工件依赖关系,无触发器
部署:同一链上3的快照和工件依赖关系,+上的VCS触发器:deps.txt
构建配置的第二个链:
构建:上次成功构建时的快照和工件依赖关系为1,无触发器
测试:对同一链上的5的快照和工件依赖关系,无触发
部署:对同一链上的6的快照和工件依赖关系,任何更改时的VCS触发器 - :deps.txt
为了减少重复,您可以使用2和5,3和6,4和7的模板。