teamcity - 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
包含以下构建的项目:
- 构建主机1
- 构建主机2
现在问题来了:对于每个构建,我想设置一个 VCS 触发规则,如果提交包含对任何一个的更改,它将触发构建
- 根文件夹中的文件
- 一个或多个共享文件夹中的文件
- 特定主机文件夹中的文件 -但不是其他主机文件夹
示例:如果以下任何文件夹中的任何文件已更改,则应触发 Host2 的构建:
- 我的解决方案
- 共享文件夹A
- 共享文件夹B
- 主机/主机2
我应该如何设置文件通配符?
解决方案
格式如下来自 TeamCity Ref 也许考虑不同的方法,因为您有不同的构建/主机条件!
选项1:
由于您有各种具有构建条件的主机,因此(恕我直言)**推荐使用通配符构建依赖项,即使用工件依赖项功能,该功能反过来允许在下图中的文件和文件夹中使用通配符。
选项 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
推荐阅读
- nsis - 目标文件夹中的路径附加到旧路径,而不是使用 NSIS 显示新路径
- pentaho - Pentaho cde 弹出窗口不显示表格
- django - 我在 models.py 中的 datetime 字段不起作用,即使它在迁移时没有引发任何异常
- python - pip 在安装包时出现冲突错误
- postgresql - 如何使用 JMeter 中的 JDBC 请求将 Database1 中的值列表与 Database2 中的列匹配?
- angular - Firestore 集合展平 Observable
> - android - 设备 RAM 增加后,Android sharedpreferences 被清除
- c# - 如何对返回 void 的命令处理程序进行单元测试?
- sql-server - SQL-Server 动态 SQL 失败
- javascript - 当数组的大多数值相同时,如何避免访问相同的索引?看一看