我有这个詹金斯管道,它有多个阶段。在这些阶段中,有多个作业正在执行。 在构建作业时,我希望有一组复选框,并且管道应该只构建我在管道阶段中检查过的内容。我可以使用任何插件或方法来实现此目的吗?
示例管道代码。
按照下面的示例,存在名为作业_A1,作业_B1,作业_C1,作业_D1,作业_A2,作业_B2,作业_C2和作业_D2的作业。如果单击“使用参数构建”,它会提示我复选框,并且我应该能够检查我想要的任何作业,以便管道将仅构建我检查过的作业。
pipeline {
agent {label 'server01'}
stages {
stage('Build 01') {
steps {
parallel (
"BUILD A1" : {
build job: 'job_A1',
parameters:[
string(name: 'PARAM01', value: "$PARAM01"),
string(name: 'PARAM02', value: "$PARAM02")
]
},
"BUILD B1" : {
build job: 'job_B1',
parameters:[
string(name: 'PARAM01', value: "$PARAM01"),
string(name: 'PARAM02', value: "$PARAM02")
]
},
"BUILD C1" : {
build job: 'job_C1',
parameters:[
string(name: 'PARAM01', value: "$PARAM01"),
string(name: 'PARAM02', value: "$PARAM02")
]
},
"BUILD D1" : {
build job: 'job_D1',
parameters:[
string(name: 'PARAM01', value: "$PARAM01"),
string(name: 'PARAM02', value: "$PARAM02")
]
},
)
}
}
stage('Build 02') {
steps {
parallel (
"BUILD A2" : {
build job: 'job_A2',
parameters:[
string(name: 'PARAM01', value: "$PARAM01"),
string(name: 'PARAM02', value: "$PARAM02")
]
},
"BUILD B2" : {
build job: 'job_B2',
parameters:[
string(name: 'PARAM01', value: "$PARAM01"),
string(name: 'PARAM02', value: "$PARAM02")
]
},
"BUILD C2" : {
build job: 'job_C2',
parameters:[
string(name: 'PARAM01', value: "$PARAM01"),
string(name: 'PARAM02', value: "$PARAM02")
]
},
"BUILD D2" : {
build job: 'job_D2',
parameters:[
string(name: 'PARAM01', value: "$PARAM01"),
string(name: 'PARAM02', value: "$PARAM02")
]
},
)
}
}
}
}
答案 0 :(得分:0)
您可以使用ExtendedChoiceParameter完成所需的操作。基本上,您还将使用此jenkins插件来参数化工作名称。 您可以使用如屏幕截图所示的复选框列表
答案 1 :(得分:0)
感谢@ mbn217的回答,但是ExtendedChoice参数对我的情况没有太大帮助。 无论如何,我可以使用布尔值参数并使用脚本标记在管道内调用它。
管道脚本示例
stage ('BUILD A') {
steps {
script {
if (params.get('boolA',true)) {
build job: '_build_A', parameters: [string(name: 'param1', value: "$param1"),string(name: 'param2', value: "$param2")]
} else {
echo "A is not selected to build"
}
}
}
}
stage ('BUILD B') {
steps {
script {
if (params.get('boolB',true)) {
build job: '_build_B', parameters: [string(name: 'param1', value: "$param1"),string(name: 'param2', value: "$param2")]
} else {
echo "B is not selected to build"
}
}
}
}