TeamCity在没有更改时误触发的问题

4
我正在使用与Github和特性分支一起的TeamCity 8.05。
我有一个问题,即TeamCity有时会因为不明原因而触发特性分支上的构建。这通常发生在夜间或周末,当服务器处于空闲状态时。如果我点击构建更改,它总是一个几个月前没有更改的旧特性分支。我不知道为什么这会导致构建触发。
这也非常不一致 - 我们可能会连续一两周没有虚假构建,然后我们会在一个早晨到来,发现TeamCity已经过夜构建了6个旧特性分支并部署了一个随机的旧版本。这些分支中没有任何最近的GitHub活动,并且以前由TC构建(当进行最后更改时)。
有人知道这是怎么回事吗?是否有任何日志可以查看以找出TeamCity为什么认为需要构建的原因?

在构建触发器中有什么内容? - Mohammad Nadeem
只有一个触发器,即版本控制系统触发器,分支筛选器设置为+:*,静默期模式设置为“不使用”,其他所有字段,包括触发规则,都未被选中或为空。 - Twisted
在Administration -> Diagnostics -> Server Logs下有几个日志文件可用(尽管我正在查看v8.1.2...在v8.0.5中可能会有所不同)。否则,在服务器上它们将位于{TeamCityInstallDir}/logs/。您可能会在teamcity-vcs.log中找到有用的信息。 - SteveChapman
谢谢关于日志的提示。我在想是不是我们的构建清理策略-它会在90天后清理构建历史记录(但保留统计信息)。清理过程在凌晨3点运行,这大约是旧构建发生的时间。我想知道如果 TeamCity 删除了旧构建,然后立即在 git 中看到该分支并再次构建它。我已经注意到了我们历史上最早的构建分支-看看它是否很快就会重建。 - Twisted
我刚刚点击了“立即清理”,果然构建服务器现在正在全力重建被清理的旧分支。 - Twisted
1个回答

4

这是由Team City的Build History Cleanup功能引起的,该功能配置为清除90天之前生成的构建历史记录。

当特定功能分支的最新构建被清除并且该分支仍存在于Github上时,Team City会立即再次找到它并触发新的构建。

我认为这是Team City中的一个bug。三个月前在“未知”功能分支上的提交不应被解释为一个新的功能添加到构建中。


1
已向Jebrains报告此问题。他们在8.05和8.06中修复了此问题。升级到8.1.2后,问题已经消失。 - Twisted
你得到了我三个赞。感谢你的报告,我认为这节省了我一些麻烦。 - Jerad Rose

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