如何使用jenkins管道与nvm包装器插件?

时间:2017-11-14 15:26:47

标签: node.js jenkins jenkins-plugins jenkins-pipeline

我正在使用管道(Jenkinsfile),我需要更改节点版本。我添加了Nvm Wrapper插件,但我不知道如何正确使用Jenkinsfile

我应该在nvm('...') {}内添加steps吗?或者它应该是node步中的顶级位置? 目前我甚至没有node步骤 - 一切都是使用sh

完成的

3 个答案:

答案 0 :(得分:4)

对我有用的是什么:

pipeline {
  agent any

  stages {
    stage("Build") {
      steps {
         nvm(nvmInstallURL: 'https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh', 
             nvmIoJsOrgMirror: 'https://iojs.org/dist',
             nvmNodeJsOrgMirror: 'https://nodejs.org/dist', 
             version: '8.1.2') {
                    sh "npm install"
                    echo "Build main site distribution"
                    sh "npm run build:dist"
              }
           }
        }
    ...

答案 1 :(得分:0)

我最终使用了它,它也可以与.nvmrc文件一起使用

  <plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
      <archive>
        <manifest>
          <mainClass>demo.Main</mainClass>
        </manifest>
      </archive>
      <descriptorRefs>
        <descriptorRef>jar-with-dependencies</descriptorRef>
      </descriptorRefs>
    </configuration>
    <executions>
      <execution>
      <id>make-assembly</id>
      <phase>package</phase>
      <goals>
        <goal>single</goal>
      </goals>
      </execution>
    </executions>
  </plugin>

这希望将nvm安装在jenkins主文件夹中。但是添加一个首先在正确位置下载nvm的步骤很容易。

答案 2 :(得分:0)

这对我有用

sh 'bash -l -c ". $HOME/.nvm/nvm.sh ; nvm use <version> || nvm install <version> && nvm use <version> "' 

示例:

sh 'bash -l -c ". $HOME/.nvm/nvm.sh ; nvm use 8.0 || nvm install 8.0 && nvm use 8.0 "'