如何在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')
}