2016-07-26 3 views
1

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

Вот заводное определение, отредактированный в зависимости от обстоятельств:

<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> 

Спасибо!

ответ

1

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

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

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

job('example') { 
    parameters { 
    stringParam('SERVERNAME') 
    stringParam('USERNAME')  
    } 
    configure { 
    it/'properties'/'hudson.model.ParametersDefinitionProperty'/parameterDefinitions << 'hudson.model.PasswordParameterDefinition' { 
     name('PASSWORD') 
    } 
    } 
} 
Смежные вопросы