如何在Jenkins声明管道中设置PATH

时间:2017-04-05 16:44:09

标签: jenkins path environment-variables jenkins-pipeline

在Jenkins脚本管道中,您可以像这样设置PATH env变量:

node {
   git url: 'https://github.com/jglick/simple-maven-project-with-tests.git'
   withEnv(["PATH+MAVEN=${tool 'M3'}/bin"]) {
      sh 'mvn -B verify'
   }
}

注意 PATH + MAVEN ,如https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#code-withenv-code-set-environment-variables所述:

  

要设置的环境变量列表,每个变量都在表单中   VARIABLE = value或VARIABLE =取消设置否则定义的变量。您   也可以使用语法PATH + WHATEVER = / something来预置/某事   到$ PATH。

但是我没有在使用环境语法的声明性管道中找到如何做到这一点(如下所述:https://jenkins.io/doc/pipeline/tour/environment)。

environment {
    DISABLE_AUTH = 'true'
    DB_ENGINE    = 'sqlite'
}

理想情况下,我想更新PATH以便为我的所有阶段使用自定义工具。

4 个答案:

答案 0 :(得分:31)

可以使用environment部分:

pipeline {
  agent { label 'docker' }
  environment {
    PATH = "/hot/new/bin:$PATH"
  }
  stages {
    stage ('build') {
      steps {
        echo "PATH is: $PATH"
      }
    }
  }
}

有关信息,请参阅this answer

答案 1 :(得分:3)

作为一种变通方法,您可以定义一个环境变量并在sh步骤中使用它:

pipeline {
    environment {
        MAVEN_HOME = tool('M3')
    }

    stages {
        stage(Maven') {
           sh '${MAVEN_HOME}/bin/mvn -B verify'
        }
    }
}

答案 2 :(得分:2)

检查以下链接,这解释了如何配置工具。 使用声明性管道时,事情会变得有点不同,但总体而言,它更容易理解。

declarative-maven-project

答案 3 :(得分:1)

仅允许预安装的全局工具使用管道中的工具部分。插件提供了一些工具,但如果它不存在,我恐怕你不能通过管道工具声明来使用环境设置。

我希望错了!