目录
1. Pipeline script:
1.1.代码说明:
2. 实现效果:
3.联动说明:
4.Jenkins安装插件
properties([ parameters([ [$class: "ChoiceParameter", choiceType: "PT_SINGLE_SELECT", description: "Select the Env Name from the Dropdown List", filterLength: 1, filterable: false, name: "Env", randomName: "choice-parameter-5631314439613978", script: [ $class: "GroovyScript", fallbackScript: [ classpath: [], sandbox: true, script: '''return["Could not get Env"]''' ], script: [ classpath: [], sandbox: true, script: '''return["Dev","QA","Stage","Prod"]''' ] ] ], [$class: "CascadeChoiceParameter", choiceType: "PT_SINGLE_SELECT", description: "Select the Server from the Dropdown List", filterLength: 1, filterable: false, name: "Server", randomName: "choice-parameter-5631314456178619", referencedParameters: "Env", script: [ $class: "GroovyScript", fallbackScript: [ classpath: [], sandbox: true, script: '''return["Could not get Environment from Env Param"]''' ], script: [ classpath: [], sandbox: true, script: ''' if (Env.equals("Dev")){ return["devaaa001","devaaa002","devbbb001","devbbb002","devccc001","devccc002"] } else if(Env.equals("QA")){ return["qaaaa001","qabbb002","qaccc003"] } else if(Env.equals("Stage")){ return["staaa001","stbbb002","stccc003"] } else if(Env.equals("Prod")){ return["praaa001","prbbb002","prccc003"] } ''' ] ] ] ]) ]) pipeline { agent any stages { stage ("Example") { steps { script{ echo 'Hello' echo "${params.Env}" echo "${params.Server}" if (params.Server.equals("Could not get Environment from Env Param")) { echo "Must be the first build after Pipeline deployment. Aborting the build" currentBuild.result = 'ABORTED' return } echo "Crossed param validation" } } } } }
这里将参数Server联动到Env:
这里具体联动处理:
实现了参数Server随着Env联动
Env参数选择:"Dev"
Server参数只能选择:"devaaa001","devaaa002","devbbb001","devbbb002","devccc001","devccc002"
Env参数选择:"QA"
Server参数只能选择:"qaaaa001","qabbb002","qaccc003"
Env参数选择:"Stage"
Server参数只能选择:"staaa001","stbbb002","stccc003"
Env参数选择:"Prod"
Server参数只能选择:"praaa001","prbbb002","prccc003"
Active Choices Parameter插件和Active Choices Reactive Parameter插件
上面代码中
Env使用Active Choices Parameter插件
Server使用Active Choices Reactive Parameter插件