使用 groovy 更改 jenkins 中的作业参数值
Change job parameter value in jenkins using groovy
Jenkins 管道中的每个参数都有一个默认值,现在我只想替换其中的一个参数,如何使用 groovy?
我已经苦苦寻找了,但似乎没有任何效果:(
我试过下面的代码,它没有任何错误,但是正在安排的作业没有更新的参数(env_name)值,它有默认值
def getCause(){
return new CauseAction(new hudson.model.Cause.UserIdCause('admin-user'))
}
def job = Jenkins.instance.getItemByFullName('JobName');
if(job && job.isBuildable()){
def newParameter = new StringParameterValue('env_name', 'dev')
job.replaceAction(new ParametersAction(newParameter))
def buildResult = job.scheduleBuild2(0, getCause())
}
这可以用不同的方式解决,探索了一些方法并找到了在 jenkins
中修改现有构建的方法 属性
def formParam(job){
ParametersDefinitionProperty params = job.getProperty(ParametersDefinitionProperty.class);
List<ParameterValue> newParams = new ArrayList<>();
params.getParameterDefinitions().each{param -> newParams.add(param.getDefaultParameterValue())};
newParams.removeIf{param -> param.getName().contains("env_name")};
newParams.add(new StringParameterValue("env_name","dev",""))
return newParams;
}
def main(){
def job = Jenkins.instance.getItemByFullName('JobName');
def paramlist = formParam(job);
def future = job.scheduleBuild2(0, getCause(), new ParametersAction(paramlist));
}
params 变量将具有指定作业的所有构建属性,我正在创建一个 newParams 列表并向其添加默认值。添加后,我将删除我要替换的那个,然后向同一个键添加一个新值。这是一个可行的解决方案,它甚至不修改 jenkins 作业的作业配置。
Jenkins 管道中的每个参数都有一个默认值,现在我只想替换其中的一个参数,如何使用 groovy?
我已经苦苦寻找了,但似乎没有任何效果:(
我试过下面的代码,它没有任何错误,但是正在安排的作业没有更新的参数(env_name)值,它有默认值
def getCause(){
return new CauseAction(new hudson.model.Cause.UserIdCause('admin-user'))
}
def job = Jenkins.instance.getItemByFullName('JobName');
if(job && job.isBuildable()){
def newParameter = new StringParameterValue('env_name', 'dev')
job.replaceAction(new ParametersAction(newParameter))
def buildResult = job.scheduleBuild2(0, getCause())
}
这可以用不同的方式解决,探索了一些方法并找到了在 jenkins
中修改现有构建的方法 属性def formParam(job){
ParametersDefinitionProperty params = job.getProperty(ParametersDefinitionProperty.class);
List<ParameterValue> newParams = new ArrayList<>();
params.getParameterDefinitions().each{param -> newParams.add(param.getDefaultParameterValue())};
newParams.removeIf{param -> param.getName().contains("env_name")};
newParams.add(new StringParameterValue("env_name","dev",""))
return newParams;
}
def main(){
def job = Jenkins.instance.getItemByFullName('JobName');
def paramlist = formParam(job);
def future = job.scheduleBuild2(0, getCause(), new ParametersAction(paramlist));
}
params 变量将具有指定作业的所有构建属性,我正在创建一个 newParams 列表并向其添加默认值。添加后,我将删除我要替换的那个,然后向同一个键添加一个新值。这是一个可行的解决方案,它甚至不修改 jenkins 作业的作业配置。