在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以便为我的所有阶段使用自定义工具。
答案 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)
检查以下链接,这解释了如何配置工具。 使用声明性管道时,事情会变得有点不同,但总体而言,它更容易理解。
答案 3 :(得分:1)
仅允许预安装的全局工具使用管道中的工具部分。插件提供了一些工具,但如果它不存在,我恐怕你不能通过管道工具声明来使用环境设置。
我希望错了!