如何在Openshift上设置Jenkins以运行Node.js构build?

我的Openshift计划中有一个Jenkins齿轮实例。 我想用Grunt构build我的Javascript应用程序,然后将它托pipe在一个PHP 5.4的设备上。

由于Jenkins'slave上可用的Node.js实例已经过时,我为我的build创build了一个更新的版本,感谢Jenkins Node.js模块,它允许您在Jenkins从站中自动从Internet下载Node.js二进制文件。

这很好,因为我可以得到节点和npm版本。 这是我的构build脚本:

node --version npm --version which npm npm config get prefix 

和生成日志:

 [NodeTest] $ /bin/sh -xe /tmp/hudson493047459386546146.sh + node --version v0.10.32 + npm --version 1.4.28 + which npm /var/lib/openshift/542ab7f1500446fba1000081/app-root/data/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS_0.10.32/bin/npm + npm config get prefix /var/lib/openshift/542ab7f1500446fba1000081/app-root/data/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/NodeJS_0.10.32 

但是当我尝试安装一个模块,我得到这个错误:

脚本:

 npm install grunt 

输出:

 npm ERR! Error: Attempt to unlock grunt, which hasn't been locked npm ERR! at unlock (/var/lib/openshift/542ab7f1500446fba1000081/app-root/data/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/ NodeJS_0.10.32/lib/node_modules/npm/lib/utils/locker.js:44:11) npm ERR! at cb (/var/lib/openshift/542ab7f1500446fba1000081/app-root/data/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/ NodeJS_0.10.32/lib/node_modules/npm/lib/cache/add-local.js:30:5) ... 

我试图自定义npm_config_userconfigNPM_CONFIG_PREFIX环境variables,但没有成功。

如何在Opensift上的Jenkins上安装NPM模块?

       

网上收集的解决方案 "如何在Openshift上设置Jenkins以运行Node.js构build?"