如何根据 git 分支设置不同的 Jenkins 凭据?
How can I set different Jenkins credentials depending on the git branch?
我有一个 Jenkins Multibranch 项目,我需要根据我现在所在的 Git 分支设置一些凭据。例如:
# If I'm in master
MY_VARIABLE = credentials("master-credential")
# If I'm in develop
MY_VARIABLE = credentials("develop-credential")
# If I'm in QA
MY_VARIABLE = credentials("qa-credential")
现在,我尝试用不同的前缀命名我的变量并按以下方式设置它们:
pipeline {
agent any
environment {
MY_VARIABLE = credentials("${env.BRANCH_NAME}-credential")
}
stages {
stage("Start") {
steps {
# use MY_VARIABLE on my steps
}
}
但是没用。
我想我可以为我的凭据使用不同的域,然后在设置它们时指定域,但我没有在文档中找到如何在 Jenkinsfile 上指定域。
如果有人能帮助我,我将不胜感激。
谢谢!
虽然在 environment
指令中使用 credentials
的便利函数更清晰,但对于在 credentialsId
中像这样解析的内插字符串,您需要使用 withCredentials
插件和步骤方法。基于这个问题,我假设你想要的类型绑定是 string
:
steps {
withCredentials([string(credentialsId: "${env.BRANCH_NAME}-credential", variable: 'MY_VARIABLE')]) {
# use MY_VARIABLE on my steps
}
}
查看 documentation 了解更多信息。
我有一个 Jenkins Multibranch 项目,我需要根据我现在所在的 Git 分支设置一些凭据。例如:
# If I'm in master
MY_VARIABLE = credentials("master-credential")
# If I'm in develop
MY_VARIABLE = credentials("develop-credential")
# If I'm in QA
MY_VARIABLE = credentials("qa-credential")
现在,我尝试用不同的前缀命名我的变量并按以下方式设置它们:
pipeline {
agent any
environment {
MY_VARIABLE = credentials("${env.BRANCH_NAME}-credential")
}
stages {
stage("Start") {
steps {
# use MY_VARIABLE on my steps
}
}
但是没用。
我想我可以为我的凭据使用不同的域,然后在设置它们时指定域,但我没有在文档中找到如何在 Jenkinsfile 上指定域。
如果有人能帮助我,我将不胜感激。
谢谢!
虽然在 environment
指令中使用 credentials
的便利函数更清晰,但对于在 credentialsId
中像这样解析的内插字符串,您需要使用 withCredentials
插件和步骤方法。基于这个问题,我假设你想要的类型绑定是 string
:
steps {
withCredentials([string(credentialsId: "${env.BRANCH_NAME}-credential", variable: 'MY_VARIABLE')]) {
# use MY_VARIABLE on my steps
}
}
查看 documentation 了解更多信息。