在成功 Git 合并时触发 Teamcity 构建
Trigger Teamcity build on successful Git merge
我们希望我们的 Teamcity 服务器在有人将某些内容合并回 master 分支时自动构建。
为此,我们创建了一个新的 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 有时会使用它)
这应该匹配如下内容:
Merge branch 'test' into 'master'
或
Merge branch 'feature-cs-200' into 'master'
但是,构建从未被触发。显然正则表达式与正确的模式不匹配。
有什么想法吗?
完成...
显然 Teamcity 已经决定 +:comment=^Merge branch '[a-zA-Z0-9\p{Punct}]+' into 'master'$
正则表达式现在很好,并且只要提交消息与示例匹配就会触发构建。也许有一些缓存或其他原因导致触发器不触发。
我不确定为什么您只想在包含单词 "merge into" 的提交上触发您的构建。如果有人进行 fast-forward
合并,提交消息将不会记录合并消息。他们将改为记录提交列表。你永远不会得到触发器列表。
无论如何,如果您仍然希望它 运行 仅在合并到 master 时,您可以在 master 上(仅)设置 VCS 触发器和 运行 teamcity 目标,只要消息是 +:comment=into master:**
如果没有任何效果,您可以尝试将正则表达式 '+:comment=Merge branch .*
匹配到 master:**'
我们希望我们的 Teamcity 服务器在有人将某些内容合并回 master 分支时自动构建。
为此,我们创建了一个新的 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 有时会使用它)
这应该匹配如下内容:
Merge branch 'test' into 'master'
或
Merge branch 'feature-cs-200' into 'master'
但是,构建从未被触发。显然正则表达式与正确的模式不匹配。
有什么想法吗?
完成...
显然 Teamcity 已经决定 +:comment=^Merge branch '[a-zA-Z0-9\p{Punct}]+' into 'master'$
正则表达式现在很好,并且只要提交消息与示例匹配就会触发构建。也许有一些缓存或其他原因导致触发器不触发。
我不确定为什么您只想在包含单词 "merge into" 的提交上触发您的构建。如果有人进行 fast-forward
合并,提交消息将不会记录合并消息。他们将改为记录提交列表。你永远不会得到触发器列表。
无论如何,如果您仍然希望它 运行 仅在合并到 master 时,您可以在 master 上(仅)设置 VCS 触发器和 运行 teamcity 目标,只要消息是 +:comment=into master:**
如果没有任何效果,您可以尝试将正则表达式 '+:comment=Merge branch .*
匹配到 master:**'