使用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' } 

       

网上收集的解决方案 "使用pipe道插件在jenkins 2.0上安装节点"

 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"