示例代码如下:

def dict1 = [key1: "value1", key2: "value2"]
def dict2 = [key3: "value3", key4: "value4"]

pipeline {
    agent any
    parameters {
        choice(name: 'dictName', choices: ['dict1', 'dict2'], description: 'Select a dictionary')
    }
    stages {
        stage('Set Variables') {
            steps {
                script {
                    def selectedDict = null
                    switch (params.dictName) {
                        case 'dict1':
                            selectedDict = dict1
                            break
                        case 'dict2':
                            selectedDict = dict2
                            break
                    }
                    for (entry in selectedDict.entrySet()) {
                        env."${entry.key}" = "${entry.value}"
                    }
                }
            }
        }
        stage('Print Variables') {
            steps {
                echo "Key1: ${env.key1}"
                echo "Key2: ${env.key2}"
                echo "Key3: ${env.key3}"
                echo "Key4: ${env.key4}"
            }
        }
    }
}

在此示例中,我们定义了两个字典 dict1 和 dict2,并在 pipeline 中使用 parameters 选择要使用的字典。然后,我们使用 switch 语句根据选择的字典名称设置 selectedDict 变量。接下来,我们使用 for 循环遍历 selectedDict 中的每个条目,并将其设置为 Jenkins 环境变量(使用 env.XXX = "YYY")。最后,我们在 Print Variables 阶段中打印这些环境变量。

这样,我们就可以根据选择的字典设置全局变量,并在 pipeline 的任何部分使用它们

使用Jenkinsfile脚本实现如下功能:在pipeline代码块外定义多组字典多个kv值根据parameters可选择参数的变量值选择对应的字典名将对应的keyvalue设置为全局变量提供给pipeline引用

原文地址: https://www.cveoy.top/t/topic/fioi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录