从阶段内部定义全局环境变量

红色888

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

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

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

  1. 在环境块中定义var
  2. 尝试覆盖script {}块,例如: script {env.var1 = 'new value'}
  3. 该环境不会被覆盖

如何更改环境?

TrafLaw

您可以按照以下步骤进行操作:

  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)
            }
          }
        }
      }
    } 
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章