如何在日志中搜索字符串,只有在Hudson中找到它时才会失败?

时间:2010-06-25 14:50:03

标签: hudson grep

我的构建和部署步骤会创建一些日志。如果我看到某些字符串,我想搜索日志并使构建失败。

好日志看起来像

log stuff
step 1: SUCCESS
step 2: SUCCESS

失败的日志看起来像

log stuff
step 1: SUCCESS
step 2: FAIL

我的支票是

grep FAIL /path/to/build.log
if [ $? -eq 0 ]; then
  exit 1
fi

我也试过

RESULT=`grep FAIL /path/to/build.log`
if [ -n "$RESULT" ]; then
  exit 1
fi

以及文件中的各种管道方式。

Hudson在grep上构建失败而没有返回任何内容。那么有更好的方法来搜索字符串吗?有没有办法让grep不返回任何东西而不是退出脚本呢?

版本资料: *哈德森1.355

1 个答案:

答案 0 :(得分:2)

从shell命令的hudson文档:

  

默认情况下,将使用“-ex”选项调用shell。因此,所有命令在执行之前都会被打印,如果任何命令以非零退出代码退出,则构建被视为失败。再次,添加#!/ bin / ...行来更改此行为。

那么,尝试添加一个#!/ bin / sh行,看看它做了什么?