Teamcity:如何检出根目录,但仅监视子目录中的更改

时间:2019-01-30 13:07:05

标签: tfs continuous-integration teamcity

我们将Teamcity 2018与TFS一起使用。

我们有一个项目,其中的结构如下

Root                <---- We want to checkout the whole Root-directory
     \ProjectA      <---- We want to show changes only from the sub-directory
     \ProjectB
     \ProjectB

我们想查看 Root \ ProjectA 目录中的更改,并仅显示在该目录下进行的更改。

但是,我们想检出整个 Root 目录并从那里运行构建。

有什么办法吗?

1 个答案:

答案 0 :(得分:1)

触发规则可以帮助您完成此任务。在VCS触发器内,您可以指定一组规则来过滤或过滤各种条件,这些条件会导致您的构建配置触发。它们独立于您的VCS规则,这些规则将正常处理您选择结帐的内容。规则语法如下:

+|-[:[user=VCS_username;][root=VCS_root_id;][comment=VCS_comment_regexp]]:Ant_like_wildcard

在这种情况下, Ant_like_wildcard 是您特别感兴趣的元素,因为您可以使用它们(除其他外)来过滤特定目录。

以下是TeamCity文档中的一个示例:

  

“-:lib / **”阻止通过更新构建源的“ lib”目录来触发构建

使用您的示例,您的触发规则应类似于:

+:ProjectA/**

由于TeamCity处理这些类型的规则的方式,您可以使用单个包含而不是多个排除:

  

在指定规则时,请注意,一旦输入任何“ +”规则,TeamCity便会将隐式默认值从“包括所有”更改为“排除所有”。

您可以找到完整的TeamCity VCS触发器文档here