如何为TeamCity设置Mercurial VCS构建触发器以忽略标签操作

13

我正在尝试使用Mercurial作为VCS为TeamCity设置构建触发器。目前,触发器看起来是这样的:

+:/**

当提交变更集时,将触发此触发器。但是,我已经在TeamCity中设置了每个构建在版本控制系统中进行标记。标记过程会触发以上构建触发器,因此构建会陷入循环。

有没有人可以建议一个版本控制系统的构建触发器,以过滤掉标记过程?

2个回答

24

添加触发器模式:

-:/.hgtags

从构建触发器中过滤出.hgtags文件。这个文件在源被TeamCity标记时会被修改。当这个文件被排除时,标记操作将不会触发构建触发器。


我尝试了不同的选项/模式来解决这个问题。实际上,这是最好的解决方案!谢谢 - Chris
实际上这不起作用!正如标签对话框所说..注意:检出规则只能设置为目录,不支持文件。 - AlSki
我也非常希望能得到这个问题的答案。 - AlSki
对我来说似乎有效,我有以下规则: +:。 -:/ .hgtags -:comment = tag build:** - David Hayes
这在7.1中似乎不再起作用了。有人找到解决方法了吗?它忽略了文件,但没有忽略修订本本身。 - Jeremy Seekamp
我相信可以通过将相同的模式添加到结账规则中来忽略修订。 - HansoS

1

Teamcity和上面的语法对我来说很陌生,但如果您具有脚本能力,可以通过执行以下操作检查变更集是否是仅标签的变更集:

if [ "$(hg log -r tip --template '{files}')" = '.hgtags' ]; then
    echo tag only
else
    echo other stuff too
fi

只需将tip替换为您即将执行的任何更改集,并根据需要将echo语句更改为exitmakehg tag,以跳过构建或仅在最后一个更改集仅为标记时跳过创建新标记。


谢谢Ry4an。你的脚本查看.hgtags文件让我想到了使用构建触发器过滤掉这个文件的解决方案。 - Matt Spradley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接