Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkinsfile:如何根据分支名称参数化凭证Id?_Jenkins_Jenkins Pipeline_Jenkins Groovy_Jenkins Declarative Pipeline - Fatal编程技术网

Jenkinsfile:如何根据分支名称参数化凭证Id?

Jenkinsfile:如何根据分支名称参数化凭证Id?,jenkins,jenkins-pipeline,jenkins-groovy,jenkins-declarative-pipeline,Jenkins,Jenkins Pipeline,Jenkins Groovy,Jenkins Declarative Pipeline,我正在我的Jenkins文件中使用凭据插件,如下所示- stage("stage name"){ steps{ withCredentials([usernamePassword(credentialsId: 'credId', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]){ sh''' statement 1

我正在我的Jenkins文件中使用凭据插件,如下所示-

stage("stage name"){
    steps{
        withCredentials([usernamePassword(credentialsId: 'credId', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]){
            sh'''
                statement 1
                statement 2
             '''
        }
    }
}
根据新的要求,我需要根据分行名称设置不同的凭证id。这意味着,如果分支名称是master,我应该使用credentialsId:'mastercred',对于其他分支,我应该使用credentialsId:'othercred'。“withCredentials”块中的代码将与相同,唯一的更改将与credentialsId相同


我不想重复代码。有没有办法将此凭证ID参数化

您可以读取branch name变量,并将a
credentialId
变量设置为在工作中使用。例如:

stage("stage name"){
    steps{

        if (env.BRANCH_NAME == "master"){
            credentialId = "mastercred"
        }else
            credentialId = "othercred"
        }

        withCredentials([usernamePassword(credentialsId: "${credentialId}", usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]){
            sh'''
                statement 1
                statement 2
             '''
        }
    }
}