如何在Jenkins上的nodejs工具中使用变量名?

时间:2019-07-03 02:43:19

标签: jenkins

我正在使用Jenkins管道,但是自上次更新以来,它在tools期间失败,并显示:“错误:名为12.5.0的jenkins.plugins.nodejs.tools.NodeJSInstallation”。

这是针对Jenkins 2.183和NodeJS-Plugin 1.33

// When using a constant string, it works.
pipeline {
  agent any
  environment {
    NODEJS_VERSION = readFile '.nvmrc'
  }
  tools {
    nodejs "12.5.0"
  }
  ...
}

// When using a variable as the nodejs name, it fails.
// "ERROR: No jenkins.plugins.nodejs.tools.NodeJSInstallation named 12.5.0"
pipeline {
  agent any
  environment {
    NODEJS_VERSION = readFile '.nvmrc'
  }
  tools {
    nodejs env.NODEJS_VERSION
  }
  ...
}

我希望使用变量时,其作用与使用常量字符串时相同。另外,似乎可以识别变量名(如错误所示)。

1 个答案:

答案 0 :(得分:0)

问题是.nvmrc有一个额外的换行符

12.5.0

将Jenkinsfile替换为以下代码即可解决问题。

pipeline {
  agent any
  environment {
    NODEJS_VERSION = "${readFile '.nvmrc'}".trim()
  }
  tools {
    nodejs env.NODEJS_VERSION
  }
  ...
}