詹金斯与Grunt整合

时间:2014-02-13 21:02:09

标签: node.js jenkins gruntjs jenkins-plugins grunt-cli

我在Windows Server 2008 R2上设置了Jenkins v1.550。它现在作为http://localhost:8080的服务运行。我以管理员身份登录了本机。我已经安装了Node.js并可以运行" npm"从命令行。

我还为Jenkins安装了NodeJS插件v0.2.1。然后我走进詹金斯的配置系统部分,向下滚动到安装的NodeJS,点击添加按钮的NodeJS,让"&的NodeJS#34;作为名称," C:\ Program Files \ nodejs"作为安装目录的路径。我没有检查"自动安装"我在插件页面上读到的选项,它只适用于Linux。

然后我创建了一个新工作,点击了表示"提供节点&的复选框。 npm bin /文件夹到PATH",为"执行Windows批处理命令"创建了一个新的构建步骤。并输入" node --version"和" grunt --version"并保存了它。

我跑完了这份工作,这就是输出 -

Building in workspace C:\Program Files (x86)\Jenkins\workspace\Test_1.0
[Test_1.0] $ cmd /c call C:\Windows\TEMP\hudson1381541243088903083.bat

C:\Program Files (x86)\Jenkins\workspace\Test_1.0>node --version 
v0.10.24

C:\Program Files (x86)\Jenkins\workspace\Test_1.0>grunt --version 
'grunt' is not recognized as an internal or external command,
operable program or batch file.

C:\Program Files (x86)\Jenkins\workspace\Test_1.0>exit 9009 
Build step 'Execute Windows batch command' marked build as failure
Finished: FAILURE

看起来它无法找到Jenkins在(系统)下运行的用户帐户的grunt-cli。我试图在全局范围内安装grunt cli(npm install -g grunt-cli)并在本地安装grunt(npm install grunt)。没有运气。

有人可以帮忙吗?

5 个答案:

答案 0 :(得分:22)

为了在机器上轻松配置自安装的nodejs,我必须推荐优秀的 - > http://wiki.jenkins-ci.org/display/JENKINS/NodeJS+Plugin

它将在机器上安装nodejs和grunt,通过易于使用的Web前端无需外壳

然后jenkins的工作可以简单地运行nodejs构建步骤,嘿presto

涉及的步骤:

a)在你的jenkins实例上安装它 - > http://wiki.jenkins-ci.org/display/JENKINS/NodeJS+Plugin

b)在jenkins

上创建一个nodejs安装

转到

http://URL_OF_JENKINS/jenkins/configure
  • NodeJS-> NodeJS安装 - >添加NodeJS - > Name =“NodeJS 0.11.10”,勾选“自动安装”,选择“从nodejs.org安装”,将“grunt-cli”添加到全局安装的包中

c)使用“执行NodeJS脚本”构建任务创建作业

var sys = require('sys');
sys.puts('NodeJS Test');
sys.puts('***************');
sys.puts('helloworld');

volia:)

运行作业并看到nodejs脚本运行,

来自他们的世界是你的牡蛎你可以通过勾选“提供节点/ npm bin文件夹到PATH”并运行“执行shell”构建任务来使用grunt

npm update
grunt
grunt --force reporting

答案 1 :(得分:6)

您需要在安装节点后重新启动Jenkins服务,可能是为了让它刷新其PATH环境变量的缓存副本

答案 2 :(得分:5)

我在Jenkins为我做了一些咕噜咕噜的任务,但是我去了npm脚本路线。 Grunt和grunt-cli是dev依赖项,我在package.json文件中定义了以下内容:

"scripts": {
    "test": "node node_modules/grunt-cli/bin/grunt test"
},

在Jenkins(在Windows上运行)中,我添加了两个构建后的任务:

npm install

npm test

我们刚刚在Jenkins服务器上安装了NodeJ。

答案 3 :(得分:1)

在Windows上为我工作的另一个解决方案是使用grunt exec文件的完整路径,可以通过在命令shell中编写“where grunt”来找到它。我在常规bat文件中使用了完整路径。

答案 4 :(得分:1)

在Windows上遇到同样的问题。当我手动安装节点并从命令行运行npm install -g grunt-cli时,jenkins无法识别grunt命令。所以卸载节点,重新安装它,但不要运行npm install。然后重启jenkins奴隶。然后从运行在特定jenkins slave上的jenkins作业中,使其运行运行 npm install -g grunt-cli 的Windows批处理命令。之后再次重启jenkins服务。然后从作业运行 npm install 。然后一切都适合我。如果问题仍然存在,那么卸载奴隶并重新安装,然后一切正常。