TeamCity-侦听多个分支上特定目录中的更改

TeamCity-侦听多个分支上特定目录中的更改,teamcity,Teamcity,我已经将vcs触发器配置为只监视特定目录,如“+:SomeDirectory/**”,当我的vcs根配置了1个分支时,它工作正常。最近我做了一个更改,并将VCS根配置为侦听多个分支 我有基于主开发分支的功能分支,我只想在特定目录发生更改时触发构建。不幸的是,通过这种配置,teamcity会为每个全新的功能分支触发额外的构建(它假定它是新的分支,因此目录中会有更改)。所以我有两个构建:如果这个目录中有任何更改,则构建;如果分支是新的,则构建 仅当“someDirectory”中的某些内容根据我的主

我已经将vcs触发器配置为只监视特定目录,如“+:SomeDirectory/**”,当我的vcs根配置了1个分支时,它工作正常。最近我做了一个更改,并将VCS根配置为侦听多个分支

我有基于主开发分支的功能分支,我只想在特定目录发生更改时触发构建。不幸的是,通过这种配置,teamcity会为每个全新的功能分支触发额外的构建(它假定它是新的分支,因此目录中会有更改)。所以我有两个构建:如果这个目录中有任何更改,则构建;如果分支是新的,则构建


仅当“someDirectory”中的某些内容根据我的主要开发分支进行了更改时,才可能触发功能分支上的构建吗?

是的,您可以通过在触发器配置页面添加VCS触发器来实现这一点,在该页面中,您可以指定“分支过滤器”等。在这里您还可以创建,在这里您可以指定哪个“VCS根”将触发构建,对于哪个目录

请注意,可能会影响VCS触发规则中使用的路径

例如,考虑将两个VCS根连接到构建配置,并使用签出规则:

master-vcs-root  +:. => master
feature-vcs-root +:. => feature
因此,主vcs根签出到[agentpath]/master,而功能vcs根签出到[agentpath]/feature

如果我们只希望根据功能vcs根目录的特定目录中所做的更改触发触发器,则触发器规则应考虑签出目录:

+:root=feature-vcs-root:feature/someDirectory/*
不是

+:root=feature-vcs-root:someDirectory/*

在TeamCity Professional 2017.2.2(build 50909)中发现了这一点。

是的,这是可能的。在配置目录过滤器的同一窗口的底部,您还应该看到一个用于指定“分支过滤器”的选项,该选项是我在vcs根目录中配置的分支规范,它只构建所需的分支。我需要在分支筛选器中配置什么以及为什么要配置?请尝试以下内部属性
teamcity.vcsTrigger.runBuildOnSameRevisionInEveryBranch=false
(请参阅)。