2014-10-31 70 views
4

在TeamCity(TeamCity Professional 8.1.5(构建30240))中有一个构建配置,连接两个VCS根目录。 VCS根指向单独的存储库。TeamCity VCS在连接到构建配置的多个VCS根目录时触发

此构建配置具有一个VCS触发器,配置为在每次检入时触发项目,且没有指定安静期。问题是,这个触发器似乎没有工作,因为构建仍处于待定状态。

已添加触发器规则:“+:root = VCSId_ProjectA:**”,以便对“ProjectB”所做的更改不会调用触发器。当只有一个VCS根连接到构建配置并且按预期工作时,此触发器已经过测试。

该触发器已通过轮询ProjectA存储库以及ProjectA的POST挂接进行测试。两个结果都是一样的。 (我甚至尝试从ProjectA存储库发送多个POST钩子来声明ProjectA和ProjectB已经被更改,毫不奇怪,这个绝望测试也没有工作)。

其中一个VCS根目录的结帐规则是:“+ :. => .ProjectB”。这是为了确保ProjectB不在ProjectA的根目录中,而是一个子目录。当手动启动Pending构建时,两个存储库都会正确提取。

两个VCS根都配置为功能分支,但是,删除分支规范对结果也没有影响。

有没有人遇到类似的问题,并能够提供一些建议?

回答

1

它可能会有所作为,也可能不会,但检出规则应该使用斜杠:“+:。=> ./ ProjectB”,如TeamCity 8.1 documentation中的示例所示。

另外需要注意的是,在构建配置中仍然会看到待定的更改,而不会触发构建。当ProjectB发生更改时会发生这种情况,但ProjectA中没有发生更改。

如果上面没有回答这个问题,并且对这个配置有了更多的了解,那么有没有相应的触发规则的额外VCS Root的目的是什么?

1

我有非常相同的配置:2个VCS根。
我需要触发第一个VCS根目录的主分支并运行构建。
如果检入已检测到,它会检出第二个VCS根目录并运行构建。

加入这行来VSC根触发规则帮了我: +:root=VCS_root_id:**

它并没有:**

的TeamCity v9.1.3

工作