如何在jenkinsfile中单独获取存储在Jenkins凭据中的用户名密码

时间:2017-03-26 08:27:06

标签: jenkins jenkins-pipeline

我已将用户名和密码存储为jenkins中的凭据。现在我想在我的Jenkinsfile中使用它们。

我正在使用withCredentials DSL,但是,我不确定如何将用户名密码作为单独的变量,因此我可以在我的命令中使用它们。

这就是我正在做的事情:

withCredentials([usernameColonPassword(credentialsId: 'mycreds', variable: 'MYCREDS')]) {
  sh 'cf login some.awesome.url -u <user> -p password'
}

我如何分别使用用户名和密码?我尝试过做${MYCREDS.split(":")[0]},但这似乎不起作用。

2 个答案:

答案 0 :(得分:5)

您可以使用UsernamePasswordMultiBinding以不同的值获取凭据数据:

withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId:'mycreds',
  usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']
])

因此,以下情况适用于您的情况:

withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId:'mycreds', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
  sh 'cf login some.awesome.url -u $USERNAME -p $PASSWORD'
}

答案 1 :(得分:3)

这是StephenKing答案的简单版本

withCredentials([usernamePassword(credentialsId: 'mycreds', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {
  sh 'cf login some.awesome.url -u $USERNAME -p $PASSWORD'

}