node.js - 使用管道插件在 jenkins 2.0 上安装 Node

标签 node.js groovy jenkins-pipeline jenkins-2

我正在运行以下 docker 镜像 jenkinsci/jenkins:2.0-rc-1 来试用 jenkins 2.0 和“管道” View 。

我似乎无法安装 Node 。这是我的管道脚本:

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 容器并手动安装 Node :

enter image description here

更新:

基于下面 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"
}

应该可以。见 JENKINS-28718进一步的建议。

顺便说一句,你可以省略 type 参数而直接使用

tool 'node-5.10.1'

为了简洁。

关于node.js - 使用管道插件在 jenkins 2.0 上安装 Node ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36575480/

相关文章:

javascript - array.include 是否适用于嵌套对象

mysql - INSERT INTO 因 node-mysql 而失败

java - 寻找有关如何在特定测试中提高常规性能的想法

jenkins - 如何正确设置默认值?

jenkins-pipeline - Gradle --no-daemon 启动守护进程?

powershell - Jenkins Powershell 写入控制台

javascript - 已声明使用 Node.js ('bucketName' 将文件上传到 Google Cloud Storage)

javascript - 控制 flash 在 node-webkit 中打开的窗口

java - 比较 Java 和 GPar

string - Groovy 字符串连接