我想将一个值,从密码参数插件,在Jenkins管道作业中传递给另一个自由式作业,用于登录。我不想在输出或其他任何地方看到它。我可以在两个自由式工作之间做到,但似乎管道有点不同。
即使我能够以字符串形式发送,它也会在“参数”选项卡或“环境变量”选项卡中显示。
有谁知道如何实现这一目标?
答案 0 :(得分:2)
我花了好几个小时为同样的问题尝试不同的解决方案,这是最终的解决方案,对我有用:
在您的管道脚本中:
stages {
stage("Do something with credentials and pass them to the downstream job") {
steps {
build job: 'your/jobname/path', parameters: [
[$class: 'hudson.model.PasswordParameterValue', name: 'PASSWORD', value: env.PASSWORD],
[$class: 'TextParameterValue', name: 'USERNAME', value: env.USERNAME]
]
}
}
诀窍是在将password参数传递给下游(Freestyle)作业时使用hudson.model.PasswordParameterValue类,但是必须在主管道(父作业)中使用相同的类进行参数定义才能使其工作
例如,在管道作业中,您将配置密码参数:
configure {
it / 'properties' / 'hudson.model.ParametersDefinitionProperty' / 'parameterDefinitions' << 'hudson.model.PasswordParameterDefinition' {
name('PASSWORD')
description('My password')
}
}
答案 1 :(得分:1)
您应该使用凭据插件,在您使用withCredentials
块写入的管道中。例如:
withCredentials([usernamePassword(credentialsId: 'abcd1234-56ef-494f-a4d9-d5b5e8ac357d',
usernameVariable: 'USERNAME',
passwordVariable: 'PASSWORD')])
{
echo 'username='+USERNAME
echo 'password='+PASSWORD
}
其中abcd1234-56ef-494f-a4d9-d5b5e8ac357d
是您在jenkins中拥有的凭据的ID,当然,只要您不回显变量(正如我在示例中所做的那样显然是为了演示目的),用户名和密码是不可见。
答案 2 :(得分:1)
您应确保父作业和子作业都使用密码参数。然后,此参数选项卡将掩盖您的密码。将构建参数设置为密码参数不会在环境变量选项卡中屏蔽密码,因为您需要在子作业和父作业配置中启用掩码密码,或者使用为构建作为环境变量注入密码并启用掩码密码。
答案 3 :(得分:0)
您可以借助以下插件触发下游作业 Parameterized+Trigger+Plugin