我们希望我们的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'$
转换为触发规则文本块中的以下内容:+: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'$
正则表达式现在很好,并且每当提交消息与示例匹配时触发构建。也许有一些缓存或其他东西导致触发器无法触发。
答案 0 :(得分:1)
我不确定您为什么只想在包含“合并到”一词的提交中触发您的构建。如果某人进行了In [14]: for cols in list(combinations(c.columns, 2)):
....: print cols, overlap(cols)
....:
('A', 'B') Overlap
('A', 'C') No
('A', 'D') No
('B', 'C') No
('B', 'D') No
('C', 'D') Overlap
合并,则提交消息将不会记录合并消息。他们将记录一份提交列表。你永远不会得到一个触发器列表。
无论如何,如果您仍希望它仅在合并到主服务器上运行,您可以在主服务器上设置VCS触发器(仅限)并在消息为fast-forward
时运行teamcity目标
如果无效,您可以尝试将正则表达式+:comment=into master:**
与主人匹配:**'