19

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

我还为 Jenkins 安装了 NodeJS 插件 v0.2.1。然后我进入 Jenkins 的配置系统部分,向下滚动到 NodeJS 安装,单击添加 NodeJS 按钮,将“NodeJS”作为名称,将“C:\Program Files\nodejs”作为安装目录的路径。当我在插件页面上读到它仅适用于 Linux 时,我没有检查“自动安装”选项。

然后我创建了一个新作业,单击“向 PATH 提供节点和 npm bin/文件夹”复选框,为“执行 Windows 批处理命令”创建了一个新的构建步骤,并输入了“node --version”和“grunt --版本”并保存。

我运行了这项工作,这是输出 -

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)。没运气。

有人可以帮忙吗?

4

5 回答 5

24

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

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

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');

沃利亚 :)

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

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

npm update
grunt
grunt --force reporting
于 2014-02-25T12:49:17.630 回答
6

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

于 2014-04-11T15:47:42.593 回答
5

我在 Jenkins 中为我完成了一些任务,但我选择了 npm 脚本路线。Grunt 和 grunt-cli 是开发依赖项,我在 package.json 文件中定义了以下内容:

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

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

npm install

npm test

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

于 2014-05-01T20:08:22.767 回答
1

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

于 2014-05-13T07:02:22.363 回答
1

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

于 2016-01-19T21:51:30.097 回答