我已经使用mocha测试和JSlint设置了一个Gruntfile。如果我只是在终端上运行grunt,这样可以正常工作。
我想从詹金斯那里跑出咕噜声!
我开了一份新工作 - >并构建为shell脚本,包括:
/usr/local/bin/grunt
一旦我完成工作,Jenkins的终端输出说:
[workspace] $ /bin/sh -xe /tmp/hudson8550584576040162032.sh
+ /usr/local/bin/grunt
/usr/bin/env: node: No such file or directory
Build step 'Execute shell' marked build as failure
Finished: FAILURE
它似乎不能很好的节点二进制!?!但节点已安装并在终端中正常运行!
我的所有二进制文件(mocha,grunt,node)都位于/ usr / local / bin /
有谁知道这是什么问题?或者也许有人有链接用jenkins设置grunt.js?
有人得到了什么吗?
THX
答案 0 :(得分:19)
这种情况正在发生,因为Jenkins将作为其他用户运行,而/usr/local/bin
可能没有$PATH
。
在您的shell脚本中,请确保/usr/local/bin
$PATH
export PATH="/usr/local/bin:$PATH"
# This will also mean you can call 'grunt' rather than '/usr/local/bin/grunt'
grunt
这可以让您调用/usr/local/bin
中安装的任何程序,而不是/usr/bin
中的任何内容。如果您不想要这种行为,只需附加而不是prepend:
export PATH="$PATH:/usr/local/bin"
# This will also mean you can call 'grunt' rather than '/usr/local/bin/grunt'
grunt
答案 1 :(得分:1)
说实话,我不熟悉Jenkins,但是当我想将GruntJS与XCode自定义构建步骤或TeamCity部署过程集成时,我遇到了同样的问题。
我通过在运行grunt或node之前将/ usr / local / bin /添加到我的shell脚本中的PATH来解决我的问题。类似的东西:
PATH=${PATH}:/usr/local/bin
grunt
我希望这对你有帮助: - )
答案 2 :(得分:0)
你可以从jenkins中设置一切:
希望你可以使用git / nodejs和grunt