2014-09-29 41 views
3

我有一个运行一些shell命令(linux)的jenkins ci作业。具体来说,我正在使用git repo并使用git add remote来确保在运行其他命令之前设置了远程设备。通常情况下,遥控器仍然在那里,并有stderr输出说“致命的:远程foo已经存在”这是我的罚款,但先生。詹金斯停止工作并将其标记为失败。让詹金斯忽略stderr的方法?

我该如何告诉詹金斯忽略这个stderr或它的预期?还是有更聪明的方法呢?

在此先感谢。

回答

2
git add remote git_repo || true 

这会返回一个0退出状态

2

问题是詹金斯着眼于退出代码,如果任何目标的运行返回一个非零退出代码将无法构建。所以忽略STDERR将无济于事。事实上,这可能是不好的,因为如果你隐藏了STDERR,其他地方的任何真正的失败都不会出现在Jenkins日志中。

如果远程已存在,则您正在运行的git命令将返回1。解决办法是包装git命令并忽略退出值并返回自己的退出值

+0

谢谢,虽然@Keeto解决了它,但是您解释了它。问:你如何“包装git命令并忽略退出值并返回自己的”? – 2014-09-29 22:06:49