因此,我已经在其中安装了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
"""
}
}
}
}
感谢任何帮助。
答案 0 :(得分:0)
正如@Dibakar Adtya指出的那样,问题在于jenkins执行管道时,它位于用户jenkins
下,而我将node
配置为另一个用户ec2-user
和{{1 }}无权访问jenkins
的垃圾箱。谢谢@Dibakar!
更优雅的解决方案是使用Jenkins NodeJS Plugin。它使您免于环境困扰。现在管道是:
ec2-user