我执行的diff命令很简单,但是从詹金斯的专有shell脚本中给出时失败。
echo 'diff Delta_changes_current.txt Delta_changes_previous.txt >> PR.DELTA.FILES'
chmod 777 delta.sh
. ./delta.sh
diff Delta_changes_current.txt Delta_changes_previous.txt
构建步骤'Execute shell'将构建标记为失败
甚至没有错误可以找出问题所在。
当我直接从服务器运行相同命令时,命令将给出结果。
有人可以帮助我找到需要做的事情
..
以上代码片段来自日志。 让我仅通过运行命令来粘贴日志。
+ diff Delta_changes_current.txt Delta_changes_previous.txt
1,4c1
< ################################# Delta_Changes_currect file for Junit##########
<
< /OptionlessVDDSController.java
< /OptionlessVDDSControllerTest_.java
\ No newline at end of file
---
> /OracleBroker.java
Build step 'Execute shell' marked build as failure
其打印输出并立即失败
答案 0 :(得分:1)
根据 diff 手册页:
_如果输入相同,则退出状态为0;如果输入不同,则退出状态为1;如果输入错误,则退出状态为2。_
如果文件不同,则diff
设置退出状态1。如果执行步骤返回的退出状态不同于0,则詹金斯将执行步骤视为失败。
您可以再添加一个命令来捕获这种情况:
(( $? < 2 )) && true # Convert status 1 to 0