使用pipe道插件在jenkins 2.0上安装节点
我正在运行以下docker图像jenkinsci/jenkins:2.0-rc-1
来试用jenkins 2.0和“pipe道”视图。
我似乎无法安装节点。 这是我的pipe道脚本:
node { //tool([name: 'node-5.10.1', type: 'jenkins.plugins.nodejs.tools.NodeJSInstallation']) sh 'echo $(whoami)' sh 'node -v' }
运行时的响应是:
[ci] Running shell script + whoami + echo jenkins jenkins [Pipeline] sh [ci] Running shell script + node -v /../durable-3b0b1b07/script.sh: 2: /../durable-3b0b1b07/script.sh: node: not found
这是我试过的:
-
jenkins NodeJS工具(与自由式作业一起使用时可以正常工作)
-
login到Docker容器并手动安装节点,对于同一个用户:
更新:
build立在Jesse Glick的答案下面,我将结果添加到我的脚本PATH
:
node { def nodeHome = tool name: 'node-5.10.1', type: 'jenkins.plugins.nodejs.tools.NodeJSInstallation' env.PATH = "${nodeHome}/bin:${env.PATH}" sh 'npm install' }
或
node { withEnv(["PATH+NODE=${tool name: 'node-5.10.1', type: 'jenkins.plugins.nodejs.tools.NodeJSInstallation'}/bin"]) { sh 'node -v' } }
要么
node { def nodeHome = tool name: 'node-5.10.1', type: 'jenkins.plugins.nodejs.tools.NodeJSInstallation' sh "${nodeHome}/bin/node -v" }
应该pipe用。 进一步的build议见JENKINS-28718 。
顺便说一下,你可以省略type
参数,只是使用
tool 'node-5.10.1'
为了简洁起见。
对我来说下一个代码:
node(){ def nodeHome = tool 'nodejs5' env.PATH="${env.PATH}:${nodeHome}/bin" ... sh 'npm install' }
nodejs5是Jenkinsconfiguration中指定的工具的名称。
如果有人碰巧在Windows上运行的Jenkins上处理这个问题。 请执行下列操作:
def nodeHome = tool 'Node.js 6.9.5' bat "\"${nodeHome}\"\\node.exe -v" bat "\"${nodeHome}\"\\npm -v"