Jenkinsfile 中的条件环境变量

Conditional environment variables in Jenkinsfile

我的 Jenkinsfiles 使用环境{}指令。我一直在尝试设置一个条件,根据正在构建的 GIT 分支调用不同的变量。

我试过类似 e. G。 :

switch(branch_name) {
   case 'dev' :
    Var1 = x;
   case 'master' :
    Var1 = y;
}

这将允许我跳过对回购上的每个分支使用不同的 Jenkins 文件。但是 groovy 语法在这个环境{}指令中似乎不起作用。

有办法解决吗?或者您会建议另一种方法来为每个分支处理不同的全局变量吗?

您可以在声明式管道中使用 when 声明式。更多信息 here

pipeline {
agent any
stages {
    stage('Example Build') {
        steps {
            echo 'Hello World'
        }
    }
    stage('Deploy to PROD') {
        when {
            branch 'production'
            environment name: 'DEPLOY_TO', value: 'production'
        }
        steps {
            echo 'Deploying'
        }
    }
    stage('Deploy to DEV') {
        when {
            branch 'dev'
            environment name: 'DEPLOY_TO', value: 'dev'
        }
        steps {
            echo 'Deploying'
        }
    }
  }
}