如何在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_userconfig
或NPM_CONFIG_PREFIX
环境variables,但没有成功。
如何在Opensift上的Jenkins上安装NPM模块?