如何在Jenkins脚本化管道中设置环境变量?
根据,这是为声明性管道设置全局环境变量的方式:如何在Jenkins脚本化管道中设置环境变量?,jenkins,jenkins-pipeline,Jenkins,Jenkins Pipeline,根据,这是为声明性管道设置全局环境变量的方式: pipeline { agent { label 'my-label' } environment { value = 'World' } stages { stage("Test") { steps { sh 'echo Hello, ${value}' } }
pipeline {
agent {
label 'my-label'
}
environment {
value = 'World'
}
stages {
stage("Test") {
steps {
sh 'echo Hello, ${value}'
}
}
}
}
输出如预期的那样是“你好,世界”
在脚本化的管道中执行此操作的正确方法是什么?以下操作没有错误,但不起作用:
node('my-label') {
environment {
value = 'World'
}
stage("Test") {
sh 'echo Hello, ${value}'
}
}
输出为“Hello”。这与预期不符。此时单击“切换脚本化管道”
Jenkins文件(脚本化管道)
您的脚本应该如下所示:
node('my-label') {
withEnv(['value=World']) {
stage('Test') {
sh 'echo Hello, ${value}'
}
}
}
在脚本化管道(以及声明性管道的脚本部分)中,可以通过“env”全局对象直接设置环境变量
node {
env.MY_VAR = 'my-value1'
}
您还可以动态设置变量,如下所示:
node {
def envVarName = 'MY_VAR'
env.setProperty(envVarName, 'my-value2')
}
啊,谢谢。我还发现“env.value='World'”也有效。
node {
def envVarName = 'MY_VAR'
env.setProperty(envVarName, 'my-value2')
}