首页 > 解决方案 > TeamCity:如何设置正确的触发器文件通配符

问题描述

假设我有一个在文件夹树中包含以下项目的解决方案(这是 C#,但原则上可以是任何东西):

MySolution
- SharedFolderA
  - File1.cs
  - File2.cs
  - SharedProject.csproj
- SharedFolderB
  - File1.cs
  - File2.cs
  - SharedProject.csproj
- Hosts
  - Host1
    - Program.cs
    - Host1.csproj
  - Host2
    - Program.cs
    - Host2.csproj

现在在 TeamCity 中,我希望将每个主机构建成单独的构建。所以我将有一个名为MySolution包含以下构建的项目:

现在问题来了:对于每个构建,我想设置一个 VCS 触发规则,如果提交包含对任何一个的更改,它将触发构建

示例:如果以下任何文件夹中的任何文件已更改,则应触发 Host2 的构建:

我应该如何设置文件通配符?

标签: teamcitydevops

解决方案


格式如下来自 TeamCity Ref 也许考虑不同的方法,因为您有不同的构建/主机条件!


选项1:

由于您有各种具有构建条件的主机,因此(恕我直言)**推荐使用通配符构建依赖项,即使用工件依赖项功能,该功能反过来允许在下图中的文件和文件夹中使用通配符。

Team City Maven 通配符构建工件依赖项


选项 2:但是,如果您选择沿原来的构建触发路径走下去,您可以试试这个。

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

触发规则

通过 UI 进行设置后,您可以通过添加修改来复制和编辑触发器。

//all files, or .CS in the root folder
/root/**
/root/*.cs

//files in one or more of the shared folders
/root/SharedFolderA/**
/root/SharedFolderB/*.cs

//files in the specific host folder - but not the other host folder
/root/SharedFolderA/**
// the -ve sign will ignore it
-/root/Hosts/Host2/**

您可以添加正则表达式或**?singmatch

示例触发配置



推荐阅读