Molet

使用Active Choice Parameter参数化构建

Molet 运维技术 2022-11-07 436浏览 0

使用Active Choice Parameter参数化构建

在使用Pipeline项目时 一般都是参数化构建工作,在Jenkins的构建需要使用参数类型有复选框,单选按钮,多选值等输入的情景。

使用Active Choice Parameter参数化构建

转到→管理Jenkins→选择管理插件→选择可用选项卡,然后搜索主动选择插件。安装并重新启动Jenkins,以正确安装插件。我的已经安装好,因此在“已安装”标签中列出。

使用Active Choice Parameter参数化构建

主动选择参数

使用Groovy脚本或Scriptler目录中的脚本为生成参数动态生成值选项列表。参数可以动态更新,呈现为组合框,复选框,单选按钮或丰富的HTML UI窗口小部件。

使用Active Choice Parameter参数化构建

按住Ctrl 就可以多选了。

使用Active Choice Parameter参数化构建

主动选择反应参数

当作业中UI控件的值发生更改时,可以动态更新(主动选择和响应参考参数) 这里可以使用IF进行条件判断,输出相关的值。

使用Active Choice Parameter参数化构建

Jenkinsfile

使用Active Choice Parameter参数化构建

properties([
parameters([
[$class:'ChoiceParameter',
choiceType:'PT_SINGLE_SELECT',
description:'SelecttheEnvNamefromtheDropdownList',
filterLength:1,
filterable:true,
name:'Env',
randomName:'choice-parameter-5631314439613978',
script:[
$class:'GroovyScript',
fallbackScript:[
classpath:[],
sandbox:false,
script:
'return[\'CouldnotgetEnv\']'
],
script:[
classpath:[],
sandbox:false,
script:
'return["Dev","QA","Stage","Prod"]'
]
]
],
[$class:'CascadeChoiceParameter',
choiceType:'PT_SINGLE_SELECT',
description:'SelecttheServerfromtheDropdownList',
filterLength:1,
filterable:true,
name:'Server',
randomName:'choice-parameter-5631314456178619',
referencedParameters:'Env',
script:[
$class:'GroovyScript',
fallbackScript:[
classpath:[],
sandbox:false,
script:
'return[\'CouldnotgetEnvironmentfromEnvParam\']'
],
script:[
classpath:[],
sandbox:false,
script:
'''if(Env.equals("Dev")){
return["devaaa001","devaaa002","devbbb001","devbbb002","devccc001","devccc002"]
}
elseif(Env.equals("QA")){
return["qaaaa001","qabbb002","qaccc003"]
}
elseif(Env.equals("Stage")){
return["staaa001","stbbb002","stccc003"]
}
elseif(Env.equals("Prod")){
return["praaa001","prbbb002","prccc003"]
}
'''
]
]
]
])
])

pipeline{
environment{
vari=""
}
agentany
stages{
stage("Example"){
steps{
script{
echo'Hello'
echo"${params.Env}"
echo"${params.Server}"
if(params.Server.equals("CouldnotgetEnvironmentfromEnvParam")){
echo"MustbethefirstbuildafterPipelinedeployment.Abortingthebuild"
currentBuild.result='ABORTED'
return
}
echo"Crossedparamvalidation"
}}
}
}
}

继续浏览有关 系统运维 的文章
发表评论