我在TeamCity (TeamCity Professional 8.1.5 (build 30240))中有一个构建配置,并附加了两个VCS。VCS根指向独立的存储库。
此生成配置具有配置为在每次签入时触发项目的VCS触发器,但未指定静默期。问题是,这个触发器似乎不起作用,因为构建仍然处于挂起状态。
添加了一个触发器规则:"+:root=VCSId_ProjectA:**“,这样对"ProjectB”的更改将不会调用触发器。此触发器已在仅将一个VCS根连接到构建配置的情况下进行了测试,并且工作正常。
触发器已经通过轮询ProjectA存储库和来自ProjectA的POST钩子进行了测试。这两种结果是相同的。(我甚至尝试从ProjectA存储库发送多个POST挂钩,以声明ProjectA和ProjectB已经更改,这并不奇怪,这种绝望测试也不起作用)。
其中一个VCS根的签出规则是:"+:. => .ProjectB“。这是为了确保ProjectB不在ProjectA的根目录下,而是子目录下。当手动启动一个挂起的构建时,两个存储库都会被正确获取。
两个VCS Root都针对功能分支进行了配置,但是,删除分支规范也不会对结果产生影响。
以前有没有人遇到过类似的问题,并能给出一些建议?
发布于 2014-11-10 13:04:32
这可能会有所不同,也可能不会,但根据TeamCity 8.1 documentation中的示例,结帐规则应该是斜杠:"+:.=>./ProjectB“。
另外请注意,您仍将在此生成配置中看到挂起的更改,而不触发生成。当ProjectB中有变化,但ProjectA中没有变化时,就会发生这种情况。
如果上面没有回答这个问题,为了对这种配置有更多的理解,那么拥有额外的VCS Root而没有相应的触发规则的目的是什么?
发布于 2015-11-28 14:28:08
我有非常相同的配置:2个VCS根。
我需要触发第一个VCS根目录的主分支并运行build。
如果检测到签入,它将签出第二个VCS根目录并运行build。
将这一行添加到VSC根触发器规则对我很有帮助:+:root=VCS_root_id:**
如果没有:**,它就无法工作
TeamCity v9.1.3
https://stackoverflow.com/questions/26675834
复制相似问题