16

我已经建立了一个带有 mocha 测试和 JSlint 的 Gruntfile。如果我只是从终端运行 grunt,这很好用。

我想从詹金斯那里咕哝!

我建立了一个新工作->并建立了一个shell脚本并包括:

/usr/local/bin/grunt

一旦我运行这项工作,詹金斯的终端输出就会说:

[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?

有人有东西吗?

谢谢

4

3 回答 3

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. 如果您不想要这种行为,只需附加而不是前置:

export PATH="$PATH:/usr/local/bin"
# This will also mean you can call 'grunt' rather than '/usr/local/bin/grunt'
grunt
于 2013-05-17T14:57:21.613 回答
1

老实说,我不熟悉 Jenkins,但是当我想将 GruntJS 与 XCode 自定义构建步骤或在 TeamCity 部署过程中集成时,我遇到了同样的问题。

我通过在运行 grunt 或 node 之前将 /usr/local/bin/ 添加到我的 shell 脚本中的 PATH 来解决我的问题。就像是:

PATH=${PATH}:/usr/local/bin
grunt

我希望这对你也有帮助:-)

于 2013-04-12T23:45:29.063 回答
0

您可以允许从 jenkins 设置所有内容:

安装 Jenkins 插件

  • Git 插件 -用于 git
  • Git 客户端插件 -用于 git
  • Git 参数插件 -用于 git 标签
  • GitHub API 插件 -用于 github
  • NodeJS Plugin -常用 JavaScript 工具 NodeJS 和 npm 的集成

Git / Ant / Maven / NodeJS 安装

  • 转到服务器/詹金斯/配置
吉特
  • Git -> Git 安装 -> 添加 Git -> JGit
  • Git 插件 -> 全局配置 user.name 值 = “Anthony Mckale”,全局配置 user.email 值 = “anthony.mckale@bskyb.com”
节点JS
  • NodeJS-> NodeJS 安装 -> 添加 NodeJS -> Name = "NodeJS 0.11.10",勾选“自动安装”,选择“从 nodejs.org 安装”,将“grunt-cli”添加到全局安装的包中

多田

希望你可以使用 git/nodejs 和 grunt

于 2014-02-14T16:00:41.510 回答