与Jenkins一起运行Grunt.js

我已经build立了一个使用摩卡testing和JSlint的Gruntfile。 这工作正常,如果我只是运行gruntforms的terminal。

我想从jenkins跑出咕噜!

我build立了一个新的工作 – >并build立了一个shell脚本,其中包括:

/usr/local/bin/grunt 

一旦我运行这个工作,jenkins的terminal输出说:

 [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 

它似乎不能精细节点二进制!?! 但是节点安装在terminal上运行良好!

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

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

有人得到了什么?

谢谢

       

网上收集的解决方案 "与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 

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

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

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

我希望这也能帮助你:-)

你可以允许安装从jenkins的一切:

安装Jenkins插件

  • Git插件 – 对于Git
  • Git客户端插件 – 为git
  • Git参数插件 – 用于git标签
  • GitHub API插件 – 用于github
  • NodeJS插件 – 通用JavaScript工具集成NodeJS&npm

Git / Ant / Maven / NodeJS安装

  • 转到SERVER / jenkins / configure

混帐

  • Git – > Git安装 – >添加Git – > JGit
  • Git插件 – >全局configurationuser.name值=“Anthony Mckale”,全局configurationuser.email值=“anthony.mckale@bskyb.com”

的NodeJS

  • NodeJS-> NodeJS安装 – > Add NodeJS – > Name =“NodeJS 0.11.10”,勾选“自动安装”,select“从nodejs.org安装”,在全局安装的软件包中添加“grunt-cli”

TADA

并希望git / nodejs和grunt将可供您使用