我在 TeamCity (TeamCity Professional 8.1.5 (build 30240)) 中有一个构建配置,并附有两个 VCS 根。 VCS 根指向单独的存储库。
此构建配置有一个 VCS 触发器,配置为在每次 checkin 时触发项目,没有指定静默期。问题是,此触发器似乎不起作用,因为构建仍处于 Pending 状态。
添加了触发器规则:“+:root=VCSId_ProjectA:**”,以便对“ProjectB”所做的更改不会调用触发器。当只有一个 VCS 根附加到构建配置时,此触发器已经过测试,并且按预期工作。
触发器已通过轮询 ProjectA 存储库以及来自 ProjectA 的 POST Hook 进行了测试。两种结果都是一样的。 (我什至尝试从 ProjectA 存储库发送多个 POST 钩子(Hook)以声明 ProjectA 和 ProjectB 已更改,不出所料,这个绝望测试也不起作用)。
VCS 根之一的 check out 规则是:“+:. => .ProjectB”。这是为了保证ProjectB不在ProjectA的根目录下,而是在子目录下。手动启动 Pending 构建时,两个存储库都可以正确获取。
两个 VCS 根都针对功能分支进行了配置,但是,删除分支规范对结果也没有任何影响。
有没有人以前遇到过类似的问题并能够提供一些建议?
最佳答案
它可能会有所不同,也可能不会,但结帐规则应该使用斜杠:“+:.=>./ProjectB”,如 TeamCity 8.1 documentation 中的示例所示。
附加说明,您仍会在此构建配置中看到待处理的更改,而不会触发构建。当 ProjectB 中有更改但 ProjectA 中没有更改时,就会发生这种情况。
如果上面没有回答这个问题并且要对这个配置有更多的了解,那么在没有相应触发规则的情况下拥有额外的 VCS Root 的目的是什么?
关于build - 当多个 VCS 根附加到构建配置时,TeamCity VCS 触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26675834/