我们有一个参数化的作业,有三个参数:服务器,用户名和密码。我们希望它们按顺序呈现,但看起来Jenkins DSL按字母顺序排列它们,因为它们在作业中显示为密码,服务器,用户名。有没有办法为lexigraphical以外的参数指定排序,或者我们应该重命名我们的参数,以便按字母顺序排序?输入密码很奇怪,然后输入服务器,然后输入要使用的用户名。我也很惊讶Jenkins DSL没有使用声明的订单来订购参数。
这是一个groovy定义,适当地编辑:
< 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 >
谢谢!
答案 0 :(得分: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')
}
}
}