我在jenkins工作中添加了一个Execute Shell构建步骤。
我需要启动Oracle NoSQL shell并运行一些DDL。
我写了shell脚本。
\\rdwlhsdevserver\root\
当我从我的终端中取出同样的东西时,它的工作正常。在第一个命令数据库shell启动并且剩余的脚本在该shell上运行之后。
但是Jenkins的构建失败了。
Jenkins作业控制台输出:
+ java -jar /root/software/kv-3.2.5/lib/kvcli.jar -host localhost -port 5000
KV-> + plan remove-table -name PersonnelUni1To1FK -wait /tmp/hudson2708562803834708095.sh:line 17:plan:command not found
构建步骤'执行shell'将构建标记为失败
它试图在我的ubuntu shell上执行这一切,而不是在数据库shell上。
答案 0 :(得分:0)
plan
是一个由shell执行的命令,对吗?错误消息只是说它没有找到命令,所以问题可能是PATH变量的设置。如果在shell脚本中指定plan
的绝对路径,会发生什么?或者,确保Jenkins上的PATH变量正确。
答案 1 :(得分:0)
作为解决方法,
我把我所有的脚本
plan remove-table -name PersonnelUni1To1FK -wait
plan remove-table -name HabitatUni1To1FK -wait
and many more...
在文件/home/dev/ons/oracle-kv-db.script
为jenkins作业修改了shell命令
java -jar /root/software/kv-3.2.5/lib/kvcli.jar -host localhost -port 5000 < /home/dev/ons/oracle-kv-db.script
现在它不需要显式的数据库shell。