当多个VCS根附加到构建配置时,TeamCity VCS触发器的工作原理是什么?

5
我在TeamCity(TeamCity Professional 8.1.5(版本号30240))中有一个Build Configuration,其中有两个连接的VCS Roots。这些VCS Roots指向不同的存储库。
此Build Configuration配置了VCS触发器,以在每次检入时触发项目,没有指定间隔时间。问题是,这个触发器似乎不起作用,因为构建保持处于挂起状态。
已添加触发器规则:“+:root = VCSId_ProjectA:**”,以便对“ProjectB”进行的更改不会调用触发器。当仅附加一个VCS root到Build Configuration并测试它时,此触发器按预期工作。
触发器已通过轮询ProjectA存储库以及由ProjectA的POST钩子测试。两种结果都相同。(我甚至尝试从ProjectA存储库发送多个POST钩子,以表明已更改ProjectA和ProjectB,但这种绝望的测试也没有起作用)。
一个VCS根的checkout规则为:“+:= .ProjectB”。这是为了确保ProjectB不在ProjectA的根目录中,而是在子目录中。手动启动待处理的构建时,可以正确地获取两个存储库。
两个VCS Roots都配置为特性分支,但删除分支规范对结果也没有影响。
是否有人遇到过类似的问题并能够提供一些建议?
2个回答

1

可能会有所不同,也可能没有,但是结账规则应该带斜杠:"+:.=>./ProjectB",如TeamCity 8.1 documentation中的示例所示。

另外注意,即使没有触发构建,您仍将在此构建配置中看到待处理更改。当ProjectB中有更改但ProjectA中没有更改时,就会发生这种情况。

如果上述内容未回答问题并且想要更好地了解此配置,那么为什么要使用额外的VCS根目录而没有相应的触发规则?


1
我��一个相似的配置:2个版本控制系统根。
我需要触发第一个版本控制系统根的主分支并运行构建。
如果检测到提交,它会检出第二个版本控制系统根并运行构建。
将此行添加到VCS根触发规则中对我很有帮助: +:root=VCS_root_id:**
没有:**不起作用。
TeamCity v9.1.3

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