Параметр, добавленный groovy к заданию jenkins, не отображается на странице сборки - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть скрипт, который добавляет параметр к моей работе в представлении. Это почти работает, но вновь добавленный параметр появляется только на странице «Настройка» задания и не отображается, когда я пытаюсь создать задание. Проблема где-то в сохранении, потому что когда я пытаюсь добавить другой параметр, ранее добавленный параметр исчезает даже со страницы '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, но ни один из них не помог. Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...