我正在运行一个Jenkins作业来启动部署。这个Jenkins作业在它试图部署的应用程序中启动一个Jenkins文件。虽然它正在运行,但似乎找不到nvm继续。我在这里找到了几个案例...主要是与源出。nvm位置,但这似乎对我不起作用。我可以登录Jenkins服务器,验证NVM是否安装并确实工作...使用我的帐户和当我作为代理使用时。下面是我最新的Jenkinsfile脚本,直到它失败的地方:
def environment = ['develop', 'test', 'production']
pipeline {
agent {label 'APP-01'}
stages {
stage("Checkout") {
when {anyOf {branch 'develop'; branch 'PR-*' } }
steps {
checkout scm
}
stage("Dependencies - npm installs") {
when {anyOf {branch 'develop'; branch 'PR-* } }
steps {
sh 'pwd'
sh 'echo $PATH'
sh '. ~/.nvm/nvm.sh'
sh 'nvm list'
Jenkins控制台输出:
从失败的节开始...
[Pipeline] { (Dependencies - npm installs)
[Pipeline] sh
+ pwd
/data/1/apps/jenkins/workspaces/workspace/jects_APP01_Repos_app-ui_develop
[Pipeline] sh
+ export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/home/proxy/.nvm
+ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/home/proxy/.nvm
[Pipeline] sh
+ . /home/proxy/.nvm/nvm.sh
++ '[' '!' -d '' ']'
++++ dirname /home/proxy/.nvm/nvm.sh
+++ cd /home/proxy/.nvm
+++ pwd
++ export NVM_DIR=/home/proxy/.nvm
++ NVM_DIR=/home/proxy/.nvm
++ '[' -x '' ']'
++ nvm ls default
++ nvm use default
++ '[' 2 -lt 1 ']'
+++ nvm_version default
++++ nvm_ls default
++++ local PATTERN=default
+++++ cd /home/proxy/.nvm
++++ echo N/A
++++ return
++ VERSION=N/A
++ echo N/A
+++ '[' N/A= N/A ']'
+++ return
++ VERSION=N/A
++ echo 'N/A version is not installed yet'
++ return 1
++ true
[Pipeline] sh
+ nvm list
/data/1/apps/jenkins/workspaces/workspace/jects_APP01_Repos_app-ui_develop@tmp/durable-2d17a47f/script.sh: line 1: nvm: command not found
1条答案
按热度按时间i7uq4tfw1#
我认为每次你运行
sh
命令,就好像你打开了一个新的终端窗口,因此,如果你用sh
步骤把nvm位置添加到你的路径中,你的路径只会为那个shell会话改变,当你运行另一个sh
命令时,它会创建一个新的会话并使用旧的路径。解决此问题的一种方法是使用单个
sh
步骤来获取和使用nvm
,如下所示: