jenkins - 如何在 jenkinsfile 中分别获取存储在 Jenkins 凭据中的用户名密码

标签 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]}但这似乎不起作用。

最佳答案

您可以使用 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'
}

关于jenkins - 如何在 jenkinsfile 中分别获取存储在 Jenkins 凭据中的用户名密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43026637/

相关文章:

Jenkins - Jenkins 电子邮件中的构建日期

jenkins - 如何从管道脚本触发远程作业

Jenkins 管道作业不会在 UI 中完成

git - Jenkins CI/CD - 将 Jenkinsfile 保存在我想要构建的单独存储库中

jenkins - 我可以在声明性 Jenkins 管道中定义多个代理标签吗?

jenkins - 如何在 Jenkins 自由泳项目中使用码头容器?

jenkins - 如何将Bazel工具与CI服务器Jenkins集成。这样我就可以自动化构建和一些构建后的 Action 。

docker - 从xml导入Job到Jenkins

git - Jenkins 使用 git sparse checkout 触发

git - 每 2 小时触发一次 Jenkins 构建,但前提是有 git 提交