2014-02-13 109 views
18

我已经在Windows Server 2008 R2上安装了Jenkins v1.550。目前它作为服务在http://localhost:8080运行。我以管理员身份登录到计算机。我已经安装了Node.js,并且可以从命令行运行“npm”。Jenkins与Grunt集成

我还为Jenkins安装了NodeJS插件v0.2.1。然后进入Jenkins的配置系统部分,向下滚动到NodeJS安装,单击添加NodeJS按钮,给出“NodeJS”作为名称,“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 

看起来它是无法找到咕噜-CLI詹金斯下(系统)运行的用户帐户。我试图在全球范围内安装grunt cli(npm install -g grunt-cli),并在本地安装grunt(npm install grunt)。没有运气。

有人可以帮忙吗?

+0

你还需要帮助吗? – dcodesmith

+1

任何人都有一些补救措施呢? – mgibas

回答

22

的不错容易在机器上配置自行安装的NodeJS,我向大家推荐的优秀 - >http://wiki.jenkins-ci.org/display/JENKINS/NodeJS+Plugin

它会在计算机上安装的NodeJS和呼噜声,通过易于使用的Web前端无需壳

詹金斯的工作就可以简单地运行构建的NodeJS步骤,变戏法似的参与

步骤:

一)对你詹金斯实例安装此 - >http://wiki.jenkins-ci.org/display/JENKINS/NodeJS+Plugin

二)创建一个詹金斯安装的NodeJS

http://URL_OF_JENKINS/jenkins/configure 
  • NodeJS->安装的NodeJS - >添加的NodeJS - > NAME = “0.11.10的NodeJS”,勾选“安装自动“,选择”从nodejs安装“。组织”,加入 “咕噜-(CLI)” 在全球范围内安装的软件包

C)创建工作 “执行脚本的NodeJS” 建设任务

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

volia :)

运行作业和看到剧本的NodeJS运行,

从他们的世界是你的牡蛎,您可以使用咕噜通过勾选“提供节点/ NPM bin文件夹到PATH”和运行“执行shell”建设任务

npm update 
grunt 
grunt --force reporting 
+4

感谢您的回答。我已经访问过你提到的链接。自动安装只适用于Linux x86/64机器,而不是Windows,这是我使用的。 – tempid

+0

这是很好的知道,欢呼欢乐 – aqm

6

您需要在安装节点后重新启动詹金斯服务,大概是为了使其刷新其缓存副本的PATH环境变量

4

我的呼噜声做了一些工作,我在詹金斯,但我去npm脚本路由。咕噜咕噜-CLI是开发的依赖,并且我有以下我的package.json文件中定义:

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

在詹金斯(在Windows上运行),我添加了两个生成后任务:

npm install 

npm test 

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

+0

但我认为这是一种黑客,我用它虽然 – JohnTheBeloved

+0

它defenetly做的伎俩,它是跨平台,谢谢! –

1

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

0

在Windows上有相同的问题。当我手动安装节点并从命令行运行npm install -g grunt-cli时,jenkins无法识别grunt命令。所以卸载节点,重新安装但不运行npm install。然后重新启动詹金斯奴隶。然后从运行在您特定的jenkins从服务器上的jenkins作业运行Windows批处理命令,该命令运行npm install -g grunt-cli之后,再次重启jenkins服务。然后从作业运行npm install。然后一切都为我工作。如果问题仍然存在,请卸载从属设备并重新安装,然后立即正常工作。