使用管道插件在 jenkins 2.0 上安装节点
installing node on jenkins 2.0 using the pipeline plugin
我运行以下docker图像jenkinsci/jenkins:2.0-rc-1
试用jenkins 2.0,"pipeline"视图。
我似乎无法安装节点。这是我的管道脚本:
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 工具(与自由式作业一起使用时可以正常工作)
登录到 docker 容器并手动安装节点,对于同一用户:
更新:
基于下面 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(){
def nodeHome = tool 'nodejs5'
env.PATH="${env.PATH}:${nodeHome}/bin"
...
sh 'npm install'
}
nodejs5是Jenkins配置中指定的工具名称
任一
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"
}
应该可以。请参阅 JENKINS-28718 了解更多建议。
顺便说一下,您可以省略 type
参数,只使用
tool 'node-5.10.1'
为简洁起见。
如果有人碰巧在 Jenkins 运行 上处理这个问题,请在 Windows 上。执行以下操作:
def nodeHome = tool 'Node.js 6.9.5'
bat "\"${nodeHome}\"\node.exe -v"
bat "\"${nodeHome}\"\npm -v"
我运行以下docker图像jenkinsci/jenkins:2.0-rc-1
试用jenkins 2.0,"pipeline"视图。
我似乎无法安装节点。这是我的管道脚本:
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 工具(与自由式作业一起使用时可以正常工作)
登录到 docker 容器并手动安装节点,对于同一用户:
更新:
基于下面 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(){
def nodeHome = tool 'nodejs5'
env.PATH="${env.PATH}:${nodeHome}/bin"
...
sh 'npm install'
}
nodejs5是Jenkins配置中指定的工具名称
任一
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"
}
应该可以。请参阅 JENKINS-28718 了解更多建议。
顺便说一下,您可以省略 type
参数,只使用
tool 'node-5.10.1'
为简洁起见。
如果有人碰巧在 Jenkins 运行 上处理这个问题,请在 Windows 上。执行以下操作:
def nodeHome = tool 'Node.js 6.9.5'
bat "\"${nodeHome}\"\node.exe -v"
bat "\"${nodeHome}\"\npm -v"