扩展选择参数实现

时间:2019-01-31 08:22:14

标签: jenkins jenkins-pipeline

我正在设置一个新作业,需要选择多个值。需要选择Service1和Service2 ... 通过链接How to pass multi select value parameter in Jenkins file(Groovy) 但是,我不确定如何在我的Jenkinsfile中传递值

Jenkinsfile的片段

stage('parallel'){

                parallel( 

                    "service1": {stage('service1-deployment') {
                     if (params.ServiceName == 'Service1' || params.ServiceName == 'ALL'){  
                        b = build(job: 'job name', parameters: [string(name: 'ENVIRONMENT', value: TARGET_ENVIRONMENT),string(name: 'IMAGE_TAG', value: value)], propagate: false).result
                        if(b=='FAILURE'){
                                echo "job failed"
                                currentBuild.result = 'UNSTABLE'
                            }
                    }       
                }
            },  



                "service2": {stage('service2t') {
                     if (params.ServiceName == 'service2' || params.ServiceName == 'ALL'){  
                        b = build(job: 'Job name', parameters: [string(name: 'ENVIRONMENT', value: TARGET_ENVIRONMENT),string(name: 'IMAGE_TAG', value: value)], propagate: false).result
                        if(b=='FAILURE'){
                                echo "job failed"
                                currentBuild.result = 'UNSTABLE'
                            }
                    }       
                }   
            },

1 个答案:

答案 0 :(得分:1)

我发现您在工作中使用declarative pipeline语法。

因此,如果接受booleanParam接受的answerthat question对您有用,那么您可以在parameters部分中使用它(请参阅官方{{3} }以获取更多详细信息):

pipeline {
    agent any
    parameters {

        booleanParam(defaultValue: false, name: 'ALL', description: 'Process all'),
        booleanParam(defaultValue: false, name: 'OPTION_1', description: 'Process option 1'),
        booleanParam(defaultValue: false, name: 'OPTION_2', description: 'Process options 2'),

    }
    stages {
        stage('Example') {
            steps {
                echo "All: ${params.ALL}"

                echo "Option 1: ${params.OPTION_1}"

                echo "Option 2: ${params.OPTION_2}"
            }
        }
    }
}

但是,如果要对多选输入使用扩展选择参数,则需要使用documentation语法,请参见scripted pipeline示例(已经提到了this)。