您的断言失败,因为输入类型
password
返回的不是字符串,而是
hudson.util.Secret
对象如果要将输入密码与
cred_passphrase
您应该这样做:
hudson.util.Secret.fromString(cred_passphrase) == userInput.password
转换是很重要的
cred\u密码短语
具有
Secret.fromString(data)
到a
哈德逊。util。秘密
对象,因为变量
cred\u密码短语
将您的密码短语作为纯文本保存在
String
。
下面你可以找到一个完整的例子。
node {
stage ("Collect User Input") {
userInput = input( id: 'Input-username',
message: 'Select username',
ok: 'Continue',
parameters: [choice(choices: 'user1\nuser2\nuser3', description: '', name: 'username'),
password(defaultValue: '', description: 'Enter your private key passphrase ', name: 'password')
],
submitterParameter: 'approver')
println("User Input is: " + userInput)
withCredentials(bindings: [sshUserPrivateKey(credentialsId: 'my-test-key',
keyFileVariable: 'cred_keyfile',
passphraseVariable: 'cred_passphrase',
usernameVariable: 'cred_username' )])
{
assert hudson.util.Secret.fromString(cred_passphrase) == userInput.password
}
}
}