Teamcity 触发合并后的构建

9
我们目前在使用Mercurial作为VCS根时,遇到了一个问题:Teamcity使用VCS触发器触发构建时,即使没有文件更改,也会出现问题。我们已经设置了检出规则,只检出需要构建的解决方案所需的文件夹,并且要求仅在包含解决方案的文件夹中有更改时才进行构建。
我们遇到的问题是,当我们合并头时,Teamcity会在没有更改文件夹的情况下触发构建。
未完成的更改将显示0个文件,如果查看文件更改,则显示的文件来自未包括在检出规则或VCS触发器中的文件夹。
我似乎无法解决这个问题,因此任何帮助都将不胜感激。

你的版本控制设置页面上的“根”路径是什么?它包括顶层文件夹还是仅限于解决方案文件夹? - Adarsh Shah
它被设置为Repo的根路径,这将是顶层文件夹。 - Jonathan
尝试将其设置为解决方案文件夹。 - Adarsh Shah
@Jonathan,你解决了吗?我们也遇到了同样的问题。 - BitMask777
@BitMask777 不,我们最终放弃了:( - Jonathan
你能发布一下你的版本控制触发器规则配置吗? - Kaspars Ozols
2个回答

1
我猜TC9 文档 可以解释为什么会发生这种情况。我知道这份文档是针对新版本的,但它似乎涉及到你遇到的确切场景。
触发分支合并构建
VCS触发器充分考虑分支,并在检测到分支中的提交时触发构建。
当从一个分支合并/快进到另一个分支时,严格来说代码中没有实际更改。默认情况下,VCS触发器的行为如下:
- 当两个非默认分支合并/快进时:构建中的更改是根据同一分支中之前的构建计算的,因此如果在不同分支上有相同提交的构建,则触发器将在指向同一提交的另一个分支上启动构建。 - 如果默认分支是合并/快进中的一个分支,则始终针对默认分支计算更改,如果在默认分支上有相同修订版本的构建,则TeamCity不会在同一修订版本上运行新的构建。

这听起来就是当时发生的事情,但那已经是很久以前的事了。 - Jonathan
谢谢!看起来这种新行为是在TC9中引入的。我们只需要更新 :) - tomgi

0

谢谢,这正是我们所拥有的,但只有在合并时,当更改来自另一个文件夹时才会触发构建。 我可能会添加一个全局排除,看看是否有帮助。 - Jonathan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接