Jenkins声明性管道:找不到npm命令

时间:2019-11-26 05:45:16

标签: jenkins jenkins-pipeline

因此,我已经在其中安装了ssh这个jenkins ec2实例,并全局安装了node并设置了PATH。但是在执行管道时,它会给我npm command not found错误。

我将echo $PATH放入管道中,结果是:

  

/home/ec2-user/.nvm/versions/node/v10.15.1/bin:/sbin:/usr/sbin:/bin:/usr/bin

哪个看起来正确。

作为参考,这是我非常简单的管道:

pipeline {
  agent { label 'master' }

  environment {
    PATH = "/home/ec2-user/.nvm/versions/node/v10.15.1/bin:${env.PATH}"
  }

  stages {
    stage('Test npm') {
      steps {
        sh """
          echo $PATH
          npm --version
        """
      }
    }
  }
}

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

正如@Dibakar Adtya指出的那样,问题在于jenkins执行管道时,它位于用户jenkins下,而我将node配置为另一个用户ec2-user和{{1 }}无权访问jenkins的垃圾箱。谢谢@Dibakar!

更优雅的解决方案是使用Jenkins NodeJS Plugin。它使您免于环境困扰。现在管道是:

ec2-user