У меня есть скрипт, который добавляет параметр к моей работе в представлении. Это почти работает, но вновь добавленный параметр появляется только на странице «Настройка» задания и не отображается, когда я пытаюсь создать задание. Проблема где-то в сохранении, потому что когда я пытаюсь добавить другой параметр, ранее добавленный параметр исчезает даже со страницы 'configure'.
Мой код следующий:
import hudson.model.*
import jenkins.model.*
param_type = "choice";
param_name = "param";
param_value = ["ch1", "ch2"] as String[];
param_description = "description"
views = "test1"
def jobNames = [];
for(choice in views.split(",")){
Hudson.instance.getView(choice).items.each() {
jobNames.add(it.fullDisplayName)
}
}
for(item in Hudson.instance.items) {
for(jobName in jobNames){
if(item.name.equalsIgnoreCase(jobName))
{
def paramDefProp = item.getProperty(ParametersDefinitionProperty.class);
if (paramDefProp != null) {
def parameters = new ArrayList<ParameterDefinition>();
parameters += paramDefProp.getParameterDefinitions();
switch(param_type){
case "string":
parameters.add(new StringParameterDefinition(param_name, param_value, param_description));
case "boolean":
parameters.add(new BooleanParameterDefinition(param_name, param_value, param_description));
case "choice":
parameters.add(new ChoiceParameterDefinition(param_name, param_value, param_description));
}
item.addProperty(new ParametersDefinitionProperty(parameters));
}
}
}
}
Я пытался Jenkins.save (), Jenkins.reload (), item.save (), item.updateTransientActions () в для l oop, но ни один из них не помог. Есть идеи?