2
我刚刚试验Jenkins并设置了一些项目。一个特别调用一个shell脚本,并从该脚本退出代码正确拾取,产生通过/失败。然而,当我从命令行调用Scala时,无论发生什么,它都会通过。Jenkins在Scala失败时报告成功
在执行壳箱:
/opt/scala/2.9.1/bin/scala sdfsdfsd
Exception in thread "main" java.lang.RuntimeException:
Cannot figure out how to run target: sdfsdfsd
... (stack trace removed)
Finished: SUCCESS
然而这样做与Java等效产生一个错误:
/opt/java/jdk1.7.0/bin/java sdfdfsd
Error: Could not find or load main class sdfdfsd
Finished: FAILURE
运行时,从bash的(与回声这两个产生的1的退出代码$?)
我错过了什么,或者这是一个错误?
编辑:
有趣的是,我用蚂蚁Exec时我看到了同样的现象 - 当我调用包含Scala的无效电话,我得到预期的错误代码的shell脚本,而是通过蚂蚁(与failonerror =”真')我看到零,并建立成功。
由于
那些'...'表示其他命令正在执行吗?如果我没有完全误导,Jenkins只会选择最后执行的命令的退出代码,所以如果脚本中有另一个命令在scala失败后执行,并且此命令成功,Jenkins仍会认为这是成功的。 – pushy
对不起,它只是来自java/scala的附加堆栈跟踪/其他输出。 – David
你有没有试过'echo $?'从詹金斯的脚本内?如果你是从bash而不是Jenkins做的话,可能会有些不同。你也可能想尝试像'if $? == 1 exit 1'(< - 这只是伪代码,当然;-)) – pushy