Jenkins声明式管道中带插值的条件环境变量

时间:2020-08-30 20:49:52

标签: jenkins jenkins-pipeline jenkins-groovy

我经历了此[answer](Conditional environment variables in Jenkins Declarative Pipeline),并在下面寻找类似的东西,我需要在env变量中设置凭据的值。

pipeline {
    agent any
    environment {
         TOKEN = env.BRANCH_NAME.equals('master') ? credentials('some-token') : credentials('another-token')
    }
}

这是可能的还是任何其他方式。请建议!

1 个答案:

答案 0 :(得分:0)

我想还有两种可能性。首先,您可以在environment标记中使用if-else。或者,您可以设置environment variables dynamically

pipeline {
    agent any 
    environment {
        // Using returnStdout
        CC = """${sh(
                returnStdout: true,
                script: 'echo "clang"'
            )}""" 
        // Using returnStatus
        EXIT_STATUS = """${sh(
                returnStatus: true,
                script: 'exit 1'
            )}"""
    }
    stages {
        stage('Example') {
            environment {
                DEBUG_FLAGS = '-g'
            }
            steps {
                sh 'printenv'
            }
        }
    }
}