installing node on jenkins 2.0 using the pipeline plugin

落花浮王杯 提交于 2019-12-13 11:58:07

问题


I am running the following docker image jenkinsci/jenkins:2.0-rc-1 to try out jenkins 2.0, and the "pipeline" view.

I can't seem to install node. Here's my pipeline script:

node {
    //tool([name: 'node-5.10.1', type: 'jenkins.plugins.nodejs.tools.NodeJSInstallation'])
    sh 'echo $(whoami)'
    sh 'node -v'
}

The response when this runs is:

[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

Here's what i've tried:

  • the jenkins NodeJS tool (which works correctly when used with a freestyle job)

  • logging into the docker container and installing node manually, for the same user:

UPDATE:

Building on Jesse Glick's answer below, i added the result to my scripts 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'
}

回答1:


Either

node {
  withEnv(["PATH+NODE=${tool name: 'node-5.10.1', type: 'jenkins.plugins.nodejs.tools.NodeJSInstallation'}/bin"]) {
    sh 'node -v'
  }
}

or

node {
  def nodeHome = tool name: 'node-5.10.1', type: 'jenkins.plugins.nodejs.tools.NodeJSInstallation'
  sh "${nodeHome}/bin/node -v"
}

should work. See JENKINS-28718 for further proposals.

By the way you can omit the type parameter and just use

tool 'node-5.10.1'

for brevity.




回答2:


For me work next code:

node(){
  def nodeHome = tool 'nodejs5'
  env.PATH="${env.PATH}:${nodeHome}/bin"
  ...
  sh 'npm install'
}

nodejs5 is the name of the tool specified in Jenkins configuration.




回答3:


If anyone happens to deal with this issue on Jenkins running on Windows. Do the following:

def nodeHome = tool 'Node.js 6.9.5'
bat "\"${nodeHome}\"\\node.exe -v"
bat "\"${nodeHome}\"\\npm -v"


来源:https://stackoverflow.com/questions/36575480/installing-node-on-jenkins-2-0-using-the-pipeline-plugin

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!