我已经建立了一个带有 mocha 测试和 JSlint 的 Gruntfile。如果我只是从终端运行 grunt,这可以正常工作。
我想从 Jenkins 那里 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
似乎它不能精细 Node 二进制!?!但是 Node 已安装并在终端中运行良好!
我所有的二进制文件(mocha、grunt、node)都在/usr/local/bin/中
有谁知道问题出在哪里?或者也许有人有使用 jenkins 设置 grunt.js 的链接?
有人拿东西了吗?
谢谢
最佳答案
发生这种情况是因为 Jenkins 将以不同的用户身份运行,该用户的 $PATH
中可能没有 /usr/local/bin
。
在您的 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
中的任何程序。如果您不想要这种行为,只需追加而不是前置:
export PATH="$PATH:/usr/local/bin"
# This will also mean you can call 'grunt' rather than '/usr/local/bin/grunt'
grunt
关于node.js - 使用 Jenkins 运行 Grunt.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15971103/