和Jenkins一起运行Grunt.js

use*_*743 16 node.js jenkins gruntjs

我已经使用mocha测试和JSlint设置了一个Gruntfile.如果我只是从终端运行grunt,这工作正常.

我想从詹金斯那里咕噜咕噜!

我设置了一个新工作 - >并构建了一个shell脚本,包括:

/usr/local/bin/grunt
Run Code Online (Sandbox Code Playgroud)

一旦我完成工作,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
Run Code Online (Sandbox Code Playgroud)

它似乎不能精细节点二进制!?!但节点已安装并在终端中正常运行!

我的所有二进制文件(mocha,grunt,node)都在/ usr/local/bin /

有谁知道这是什么问题?或者也许有人有链接用jenkins设置grunt.js?

有人得到了什么?

谢谢

Ewa*_*wan 19

这是发生因为詹金斯将运行作为可能不具有不同的用户/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
Run Code Online (Sandbox Code Playgroud)

这有叫你安装任何程序的好处/usr/local/bin超过任何东西/usr/bin.如果您不想要此行为,只需附加而不是前置:

export PATH="$PATH:/usr/local/bin"
# This will also mean you can call 'grunt' rather than '/usr/local/bin/grunt'
grunt
Run Code Online (Sandbox Code Playgroud)