首页 > 解决方案 > Jenkins 流水线条件环境变量

问题描述

environmental我在声明性管道的指令部分中有一组静态环境变量。这些值可用于管道中的每个阶段。我希望根据任意条件更改值。有没有办法做到这一点?

pipeline {
   agent any
   environment {
     if ${params.condition} {
     var1 = '123'
     var2 = abc
    } else {
     var1 = '456'
     var2 = def
     }
   }
   stages {
     stage('One') {
      steps {
        script {
        ...
        echo env.var1
        echo env.var2            
        ...
     }
    }
   }
  }
  stag('Two'){
   steps {
        script {
        ...
        echo env.var1
        echo env.var2
        ...
     }
   }
 }

标签: jenkinsgroovy

解决方案


寻找同样的东西,我在其他问题中找到了一个很好的答案

基本上就是使用三元条件运算符

pipeline {
    agent any
    environment {
        var1 = "${params.condition == true ? "123" : "456"}"
        var2 = "${params.condition == true ? abc : def}"
    }
}

注意:请记住,在你写问题的方式(我做了我的回答)中,数字是字符串,字母是变量。


推荐阅读