Jenkins中构建参数默认值持久化解决方案

1.Jenkins中构建参数默认值持久化解决方案

1.1 方案一

安装Groovy Postbuild插件,自己写代码,缺点是局限性比较大,适用于参数类型是string的,并不适用于boolchoice类型,因为这些类型的默认值被readonly修饰。(但此方案有一个优点,就是假如你需要用 Extended Choice Parameter Plug-In 这个多选参数插件,该方案可以修改其默认值);

1.2 方案二

安装Persistent Parameter Plugin,适用范围广,stringtextboolchoice也都适用。

2.方案一实现

2.1 安装插件

安装Groovy Postbuild插件。

2.2 写入代码

import hudson.model.*
manager.listener.logger.println("开始执行Groovy Postbuild")
def paramsDef = manager.build.getParent().getProperty(ParametersDefinitionProperty.class)
if (paramsDef) {
	paramsDef.parameterDefinitions.each{ param ->
    manager.listener.logger.print("parameter ${param.name},orginal default value was ${param.defaultValue}.")
    try{
		param.defaultValue = manager.build.buildVariableResolver.resolve(param.name).replace('"','')
		manager.listener.logger.println("After ${param.name} has be Changed,new default value was ${param.defaultValue}")
	}catch(Exception e){
		manager.listener.logger.println("There is a Exception when Assign new value to default value of parameter ${param.name} ")
		manager.listener.logger.println(e.getMessage())
		manager.listener.logger.println(e.printStackTrace())		
	}			
  }
}

3.方案二实现

3.1 安装插件

安装Persistent Parameter Plugin插件。

3.2 配置参数

参数化构件中,选择Persistent类型
Jq0OY2

posted @ 2021-09-14 14:09  大帅同学  阅读(442)  评论(0编辑  收藏  举报