我正在设置一个新作业,需要选择多个值。需要选择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'
}
}
}
},
答案 0 :(得分:1)
我发现您在工作中使用declarative pipeline语法。
因此,如果接受booleanParam
接受的answer的that 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)。