我目前正在使用带参数化构建的Jenkins Delarative管道
pipeline {
agent any
parameters {
booleanParam(name: 'cleanDB',defaultValue: false,description: 'should clean db ?' )
string(name: 'host',defaultValue: 'xyx',description: 'DB Host')
}
stages {
stage('Build') {
steps {
sh 'mvn verify'
}
}
stage('Execute') {
steps {
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'CREDENTIALS', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']])
{
sh "ant " +"-Ddb.clean=${params.cleanDB} -Ddb.host=${params.host} -Ddb.userid=$USERNAME \"-Ddb.password=$PASSWORD\" "
}
}
}
}
}
当我尝试使用参数构建时,它只提示两个param cleanDB,主机params.i希望它也可以询问采用哪个凭证参数。只有在参数化构建中通过UI显式添加时才会占用。
那么如何在参数中添加凭证参数,任何人都可以在下面的语法中共享一个定义它的例子。
parameters {
booleanParam(name: 'cleanDB',defaultValue: false,description: 'should clean db ?' )
string(name: 'host',defaultValue: 'xyx',description: 'DB Host')
credentialParam(name: 'host',description: 'Credentials')
}
答案 0 :(得分:5)
虽然截至今天(2017-08-29)jenkins docs仅提及可能参数的字符串和布尔类型,但有一些ticket可以回答此问题。它说要做:
parameters {
credentials(name: 'CredsToUse', description: 'A user to build with', defaultValue: '', credentialType: "Username with password", required: true )
}
我刚尝试过,它运行正常。当第一次执行时它不会提出任何问题,它只是为作业创建参数。之后,它会要求提供凭据。
当然,它适用于Declarative Pipeline语法,因此必须用'管道进行封装。
答案 1 :(得分:1)
尝试以下方法:
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'CREDENTIALS', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']])
{
sh 'ant -Ddb.clean=${params.cleanDB} -Ddb.host=${params.host} -Ddb.userid=$USERNAME -Ddb.password=$PASSWORD'
}
的文档