解决Jenkinsfile执行sh 报Warning: JENKINS-41339 probably bogus

执行以下pipeline时,报错!
Warning: JENKINS-41339 probably bogus PATH=$PATH:/usr/share/maven/bin:/usr/share/maven/bin; perhaps you meant to use ‘PATH+EXTRA=/something/bin’?

pipeline {
    agent any
    
    stages {
        stage('Hello') {
            steps {
               sh "echo OK"
               sh '''
                    pwd
               '''
               sh 'echo "hello"'
               sh "echo 'OK'"
            }
        }
    }
}

解决方式一:
采用environment {
PATH = "PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin"
}方式

pipeline {
    agent any
    environment {
        PATH = "PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin"
    }
    stages {
        stage('Hello') {
            steps {
               sh "echo OK"
               sh '''
                    pwd
               '''
               sh 'echo "hello"'
               sh "echo 'OK'"
            }
        }
    }
}

解决方式二:
采用:withEnv(['PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin']) {
}方式配置

pipeline {
    agent any
    stages {
        stage('Hello') {
            steps {
                withEnv(['PATH+EXTRA=/usr/sbin:/usr/bin:/sbin:/bin']) {
                      sh "echo hello"
                }
           }
        }
    }
}

解决方式三:
通过转到Manage Jenkins-> Configure System并删除PATH全局属性。
去掉全局环境配置,但会造成其他问题;
一些自由风格的环境会因此破坏。





[推荐]解决方法四:
通过转到Manage Jenkins-> Configure System并配置PATH全局属性。
环境变量配置:
键:M2_HOME 值:/usr/local/maven
键:NODE_HOME 值:/usr/local/node
键:... 值:...
键:PATH+EXTRA 值:$PATH:$M2_HOME/bin:$NODE_HOME/bin

PS:关键配置,环境键变量变为:PATH+EXTRA 而不是PATH
最终配置如下图:

完成以上配置后: java -version、mvn -v、node -v都将可用;
而且自由风格的项目也不会受影响。

#!/usr/bin/env groovy

pipeline {
    agent any

    stages {
        stage('Example') {
             steps {
                echo "Running ${env.BUILD_ID} on ${env.JENKINS_URL}"
                 sh '''
                    java -version
                    mvn -v
                    node -v
                 '''
             }
        }
        stage('拉取代码') {
            steps {
                echo "拉取代码..."
            }
        }
        stage('发布') {
            parallel {
                stage('中文环境') {
                    steps{
                        //sh "sleep 60s"
                        echo "starting  Deploy Chinese_Server......"
                    }
                }
                stage('英文环境') {
                    steps{
                        //sh "sleep 60s"
                        echo "starting Deploy English_Server......"
                    }
                }
            }
        }
    }
    post {
        always {
            echo "starting junit......"
        }
    }
}
posted @ 2021-11-29 14:23  刘文江  阅读(51)  评论(0)    收藏  举报  来源