当特定用户提交通常会触发构建的特定文件时,防止TeamCity构建触发。

3
我有一个文件在仓库根目录,任何人提交时都会触发一个TC构建。(提交其他任何文件都不会触发构建)。

当构建被触发时,对于构建代理的部分构建过程(我们只有一个),是编辑此文件并提交它。我不想让这个提交触发另一个构建,否则我就会陷入无限的构建循环。(实际上,在构建规则下面的二次自定义规则可以防止这种循环,但我仍然不希望构建被触发。)

我已经尝试了我能想到的每一种组合,以使这一对规则共存,但是当构建代理提交时,构建总是被触发。

因此,目标是由任何人(除了SVN用户“agent”)提交“BuildTrigger.txt”来触发构建...

我最后一次尝试的方法只是忽略代理提交的任何文件:


+:BuildTrigger.txt

-: user = AGENT; root = SVNROOT:**


虽然我也尝试过:


+:BuildTrigger.txt

-: user = AGENT; root = SVNROOT:/ BuildTrigger.txt


+:BuildTrigger.txt

-: user = AGENT; root = SVNROOT:BuildTrigger.txt


+:BuildTrigger.txt

-: user = AGENT


但无论何时,代理提交 BuildTrigger.txt 都会将构建加入队列。

非常感谢任何帮助。

谢谢


首先,当代理提交时,构建是否一定会被触发,还是只会显示为待处理更改。因为即使规则正在工作,它仍然会显示为待处理更改。 - Paul Hunt
是的,第二个构建是由代理提交BuilgTrigger.txt文件而排队的,一旦原始构建完成,第二个构建就会开始。我在TC论坛上找到了这篇文章http://devnet.jetbrains.com/message/5215658#5215658,它带我去了http://http://youtrack.jetbrains.com/issue/TW-3363,其中建议使用触发器规则:--:** +:actionFile.txt -:user=teamcity:actionFile.txt同样的问题,两个构建。为了“修复”它,我不得不为每个应该触发构建的用户添加特定的包含规则。也就是说。+:user=user1:BuildTrigger.txt +:user=user2:BuildTrigger.txt - James
第二个 URL 中有错别字,应该是 http://jetbrains.net/tracker/issue/TW-3363。 - James
1个回答

1

我自己也曾经遇到这个问题。我的解决方案是采用你的最后一次尝试:

+:BuildTrigger.txt

将以下文本进行英译中:

-:user=AGENT

并将其更改为:

+:BuildTrigger.txt

-:user=AGENT:**/*


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