和Jenkins一起运行Grunt.js

时间:2013-04-12 12:11:35

标签: node.js jenkins gruntjs

我已经使用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

3 个答案:

答案 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中设置一切:

安装Jenkins插件

  • Git插件 - for git
  • Git客户端插件 - for git
  • Git参数插件 - for git tags
  • GitHub API插件 - for github
  • NodeJS插件 - 集成常见的JavaScript工具NodeJS& NPM

Git / Ant / Maven / NodeJS安装

  • 转到SERVER / jenkins / configure
混帐
  • Git - > Git安装 - >添加Git - > JGit
  • Git插件 - > Global Config user.name Value =“Anthony Mckale”,Global Config user.email Value =“anthony.mckale@bskyb.com”
的NodeJS
  • NodeJS-> NodeJS安装 - >添加NodeJS - > Name =“NodeJS 0.11.10”,勾选“自动安装”,选择“从nodejs.org安装”,将“grunt-cli”添加到全局安装的包中

TADA

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