Как обеспечить порядок параметров в Jenkins DSL?

У нас есть параметризованное задание с тремя параметрами: сервер, имя пользователя и пароль. Мы хотели бы, чтобы они были представлены в таком порядке, но похоже, что Jenkins DSL упорядочивает их по алфавиту, поскольку они представлены в задании как пароль, сервер, имя пользователя. Есть ли способ указать порядок параметров, отличный от лексиграфического, или мы должны просто переименовать наши параметры, чтобы они сортировались по алфавиту? Странно вводить пароль, затем сервер, а затем имя пользователя для использования. Я также удивлен, что Jenkins DSL не использует объявленный порядок для упорядочивания параметров.

Вот классное определение, отредактированное соответствующим образом:

< snip >
job("myFolder/seed-jobname") {
  description('This job does stuff on a specified server')
  parameters {
    stringParam('SERVERNAME',
      '',
      'Enter the server to do stuff on'
    )
    stringParam('USERNAME', '', 'Enter your user ID')
    configure {
      it / 'properties' / 'hudson.model.ParametersDefinitionProperty' / parameterDefinitions << 'hudson.model.PasswordParameterDefinition' { 
        name 'PASSWORD'
        description 'Enter your password'
        defaultValue ''
      }
    }
  }
< snip >

Спасибо!


person GPandzik    schedule 26.07.2016    source источник


Ответы (1)


Jenkins и Job DSL сохранят параметры в указанном порядке.

Проблема с вашим фрагментом заключается в том, что вы помещаете блок конфигурации в закрытие параметров. configure доступен только на уровне job. Вызов его внутри другого замыкания приведет к тому, что блок configure будет выполняться до содержащего замыкания. В вашем случае параметр PASSWORD генерируется перед другими параметрами.

Попробуй это:

job('example') {
  parameters {
    stringParam('SERVERNAME')
    stringParam('USERNAME')    
  }
  configure {
    it / 'properties' / 'hudson.model.ParametersDefinitionProperty' / parameterDefinitions << 'hudson.model.PasswordParameterDefinition' { 
      name('PASSWORD')
    }
  }
}
person daspilker    schedule 08.08.2016