更改 Jenkins 管道中的参数值

Change the parameter values in a Jenkins Pipeline

如何将参数值映射到不同的值,然后在管道内执行。

parameters {
      choice(name: 'SIMULATION_ID', 
        choices: 'GatlingDemoblaze\nFrontlineSampleBasic\nGatlingDemoStoreNormalLoadTest', 
        description: 'Simulations')
    }

如何将 'GatlingDemoblaze' 的值映射到“438740439023874”,以便后者进入 ${params.SIMULATION_ID}?我们可以使用简单的 groovy 代码来做到这一点吗?

gatlingFrontLineLauncherStep credentialId: '', simulationId:"${params.SIMULATION_ID}"

感谢您的帮助。

正如评论中所建议的那样,最好的方法是使用 Extensible Choice Parameter Plugin 并定义所需的键值对,但是如果您不想使用该插件,则可以使用 groovy 在管道脚本中并使用它。
为此,您有多种选择:
如果你需要它用于单个阶段,你可以在 script 块中定义地图并在该阶段使用它:

pipeline {
    agent any
    parameters {
        choice(name: 'SIMULATION_ID',  description: 'Simulations',
                choices: ['GatlingDemoblaze', 'FrontlineSampleBasic', 'GatlingDemoStoreNormalLoadTest'])
    }
    stages {
        stage('Build') {
            steps {
                script {
                    def mappings = ['GatlingDemoblaze': '111', 'FrontlineSampleBasic': '222', 'GatlingDemoStoreNormalLoadTest': '333']
                    gatlingFrontLineLauncherStep credentialId: '', simulationId: mappings[params.SIMULATION_ID]
                }
            }
        }
    }
}

你也可以将其定义为全局参数,在所有阶段都可用(这样你就不需要script指令):

mappings = ['GatlingDemoblaze': '111', 'FrontlineSampleBasic': '222', 'GatlingDemoStoreNormalLoadTest': '333']

pipeline {
    agent any
    parameters {
        choice(name: 'SIMULATION_ID',  description: 'Simulations',
                choices: ['GatlingDemoblaze', 'FrontlineSampleBasic', 'GatlingDemoStoreNormalLoadTest'])
    }
    stages {
        stage('Build') {
            steps {
                gatlingFrontLineLauncherStep credentialId: '', simulationId: mappings[params.SIMULATION_ID]
            }
        }
    }
}

另一个选项是在 environment 指令中设置这些值:

pipeline {
    agent any
    parameters {
        choice(name: 'SIMULATION_ID',  description: 'Simulations',
                choices: ['GatlingDemoblaze', 'FrontlineSampleBasic', 'GatlingDemoStoreNormalLoadTest'])
    }
    environment{
        GatlingDemoblaze = '111'
        FrontlineSampleBasic = '222'
        GatlingDemoStoreNormalLoadTest = '333'
    }
    
    stages {
        stage('Build') {
            steps {
                gatlingFrontLineLauncherStep credentialId: '', simulationId: env[params.SIMULATION_ID]
            }
        }
    }
}