【发布时间】:2017-04-09 17:22:18
【问题描述】:
我们希望我们的 Teamcity 服务器在有人将某些内容合并回主分支时自动构建。
为此,我们创建了一个新的 VCS 触发器并检查了Trigger a build on each check-in-选项。我们禁用了Quiet period mode 并为触发规则添加了正则表达式。
查看Java regex documentation 我创建了以下正则表达式:
^Merge branch '[a-zA-Z0-9\p{Punct}]+' into 'master'$ 在 Trigger rules 文本块中转换为以下内容:+:comment=^Merge branch '[a-zA-Z0-9\p{Punct}]+' into 'master'$ 或 +:comment=^Merge branch '[a-zA-Z0-9\p{Punct}]+' into 'master'$:**(我完全不知道 :** 应该做什么,但 TC documentation 使用这有时)
这应该匹配如下内容:
合并分支'test'到'master'
或
合并分支'feature-cs-200'到'master'
但是,构建永远不会被触发。显然正则表达式与正确的模式不匹配。
有什么想法吗?
完成...
显然,Teamcity 已经决定 +:comment=^Merge branch '[a-zA-Z0-9\p{Punct}]+' into 'master'$ 正则表达式现在很好,只要提交消息与示例匹配,就会触发构建。也许有一些缓存或其他原因导致触发器不触发。
【问题讨论】:
-
为什么不直接在提交到 master 时触发?合并将创建一个提交...
-
我们想要这个的原因是因为 Teamcity 会以这种方式触发 2 个(或更多)构建,一个用于“合并人员”,一个用于要合并的分支的作者(因为选项:
Include several check-ins in a build if they are from the same committer)。这不是一个大问题,但它会导致一些开销。因此,我们决定,目前,只有以这种方式合并的构建才会被触发。