Trigger Teamcity建立在成功的Git合并之上

时间:2015-05-06 13:13:56

标签: regex git teamcity

我们希望我们的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'$正则表达式现在很好,并且每当提交消息与示例匹配时触发构建。也许有一些缓存或其他东西导致触发器无法触发。

1 个答案:

答案 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:**与主人匹配:**'