【问题标题】:TeamCity VCS Trigger when multiple VCS Roots attached to Build Configuration当多个 VCS 根附加到构建配置时 TeamCity VCS 触发
【发布时间】:2014-12-27 20:12:41
【问题描述】:

我在 TeamCity(TeamCity Professional 8.1.5(内部版本 30240))中有一个构建配置,并附加了两个 VCS 根。 VCS 根指向单独的存储库。

此构建配置具有配置为在每次签入时触发项目的 VCS 触发器,没有指定静默期。问题是,此触发器似乎无法正常工作,因为构建仍处于 Pending 状态。

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

触发器已通过轮询 ProjectA 存储库以及来自 ProjectA 的 POST 挂钩进行了测试。两种结果都是一样的。 (我什至尝试从 ProjectA 存储库发送多个 POST 钩子来声明 ProjectA 和 ProjectB 已更改,不出所料,这个绝望测试也不起作用。

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

两个 VCS Root 都针对功能分支进行了配置,但是,删除分支规范对结果也没有影响。

以前有没有人遇到过类似的问题并能给出一些建议?

【问题讨论】:

    标签: build continuous-integration teamcity teamcity-8.0


    【解决方案1】:

    这可能会有所不同,也可能不会,但结帐规则应使用斜杠:“+:.=>./ProjectB”,如TeamCity 8.1 documentation 中的示例。

    附加说明,您仍会在此构建配置中看到待处理的更改,而不会触发构建。当 ProjectB 发生变化而 ProjectA 没有变化时,就会发生这种情况。

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

    【讨论】:

      【解决方案2】:

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

      将此行添加到 VSC 根触发规则对我有帮助: +:root=VCS_root_id:**

      没有:**就不行

      TeamCity v9.1.3

      【讨论】:

        猜你喜欢
        • 2016-01-19
        • 1970-01-01
        • 2010-12-18
        • 1970-01-01
        • 2011-06-10
        • 2013-06-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多