从舞台内部定义全局环境变量

时间:2017-12-06 22:39:33

标签: jenkins jenkins-plugins jenkins-pipeline

我在管道顶部的环境指令中定义了env变种:

environment {
    var1 = 'sdfsdfdsf'
    var2 = 'sssssss'
}

但有一些我需要在阶段中动态设置或覆盖。但是如果我在一个阶段使用环境{}指令,那么其他阶段就无法访问变量。最初我认为我可以使用top environment指令中的默认值来定义它们并在管道中覆盖它们但这是我观察到的行为:

  1. 在环境块中定义var
  2. 尝试在脚本{}块中覆盖,如:script {env.var1 = 'new value'}
  3. env未被覆盖
  4. 如何更改envs?

1 个答案:

答案 0 :(得分:1)

您可以按照以下方式执行此操作:

  1. 在舞台环境中定义var {env.var1 =' value' }
  2. 您可以在其他阶段访问相同的var并更改环境中的值{env.var1 =' value2' }

     pipeline {
      agent any
      environment { 
         var1 = 'value'
      }
    
      stages {
         stage('Initialize') {
           steps {
            script {
            echo ("value : " + env.var1)
             }
           }
        }
    
        stage('build') {
          environment { 
            var1 = 'value2'
           }
           steps {
            script {
              echo ("value : " + env.var1)
            }
          }
        }
      }
    } 
    
相关问题