Jenkins:PasswordParameterValue.value 需要 String 但收到 Secret
Jenkins: PasswordParameterValue.value expects String but received Secret
我有两个 jenkins 作业,一个接受密码的父作业,然后父作业将此信息传递给另一个需要密码参数的 jenkins 子作业。我收到如下所述的错误。
ERROR:
java.lang.ClassCastException: hudson.model.PasswordParameterValue.value expects class java.lang.String but received class hudson.util.Secret
--
parent-job:
pipeline {
agent any
stages {
stage('Parameters'){
steps {
script {
properties([
parameters([
password(defaultValue: '', name: 'uma_auth_client_secret'),
password(defaultValue: '', name: 'pki_client_cacert_password'),
password(defaultValue: '', name: 'db_url')
])
])
}
}
}
stage('Deploy'){
steps {
script {
def jobBuild = build job: child-job, propagate: false, parameters: [
password(name: 'uma_auth_client_secret', value :params.uma_auth_client_secret),
password(name: 'pki_client_cacert_password', value: params.pki_client_cacert_password),
password(name:'db_url', value: params.db_url)
]
}
}
}
}
}
--
child-job:
pipeline {
agent { label 'master' }
parameters {
password(defaultValue: '', description: '', name: 'pki_client_cacert_password')
password(defaultValue: '', description: '', name: 'db_url')
}
stage('DeployToDev') {
steps {
script{
withEnv(["ENV_PKI_CLIENT_CACERT_PASSWORD=${params.pki_client_cacert_password}", "ENV_DB_URL=${params.db_url}"]) {
....
}
}
}
}
}
}
我的问题是
- 帮我解决这个问题。
我能够如下解决这个问题,我创建了 jenkins 凭据并且能够将这些值推送到下游 'child-job'
作业
pipeline {
agent any
stages {
stage('Parameters'){
steps {
script {
properties([
parameters([
password(defaultValue: '', name: 'uma_auth_client_secret'),
password(defaultValue: '', name: 'pki_client_cacert_password'),
password(defaultValue: '', name: 'db_url')
])
])
}
}
}
stage('Deploy'){
steps {
script {
withCredentials(
[
string(credentialsId: 'uma_auth_client_secret_o2', variable: 'uma_auth_client_secret'),
string(credentialsId: 'db_url_o2', variable: 'db_url'),
string(credentialsId: 'pki_client_cacert_password_o2', variable: 'pki_client_cacert_password')
]
){
def jobBuild = build job: "child-job", propagate: false, parameters: [
password(name: 'uma_auth_client_secret', value : "${uma_auth_client_secret}"),
password(name:'db_url', value: "${db_url}"),
password(name: 'pki_client_cacert_password', value: "${pki_client_cacert_password}")
]
}
}
}
}
}
}
我有两个 jenkins 作业,一个接受密码的父作业,然后父作业将此信息传递给另一个需要密码参数的 jenkins 子作业。我收到如下所述的错误。
ERROR:
java.lang.ClassCastException: hudson.model.PasswordParameterValue.value expects class java.lang.String but received class hudson.util.Secret
--
parent-job:
pipeline {
agent any
stages {
stage('Parameters'){
steps {
script {
properties([
parameters([
password(defaultValue: '', name: 'uma_auth_client_secret'),
password(defaultValue: '', name: 'pki_client_cacert_password'),
password(defaultValue: '', name: 'db_url')
])
])
}
}
}
stage('Deploy'){
steps {
script {
def jobBuild = build job: child-job, propagate: false, parameters: [
password(name: 'uma_auth_client_secret', value :params.uma_auth_client_secret),
password(name: 'pki_client_cacert_password', value: params.pki_client_cacert_password),
password(name:'db_url', value: params.db_url)
]
}
}
}
}
}
--
child-job:
pipeline {
agent { label 'master' }
parameters {
password(defaultValue: '', description: '', name: 'pki_client_cacert_password')
password(defaultValue: '', description: '', name: 'db_url')
}
stage('DeployToDev') {
steps {
script{
withEnv(["ENV_PKI_CLIENT_CACERT_PASSWORD=${params.pki_client_cacert_password}", "ENV_DB_URL=${params.db_url}"]) {
....
}
}
}
}
}
}
我的问题是
- 帮我解决这个问题。
我能够如下解决这个问题,我创建了 jenkins 凭据并且能够将这些值推送到下游 'child-job'
作业
pipeline {
agent any
stages {
stage('Parameters'){
steps {
script {
properties([
parameters([
password(defaultValue: '', name: 'uma_auth_client_secret'),
password(defaultValue: '', name: 'pki_client_cacert_password'),
password(defaultValue: '', name: 'db_url')
])
])
}
}
}
stage('Deploy'){
steps {
script {
withCredentials(
[
string(credentialsId: 'uma_auth_client_secret_o2', variable: 'uma_auth_client_secret'),
string(credentialsId: 'db_url_o2', variable: 'db_url'),
string(credentialsId: 'pki_client_cacert_password_o2', variable: 'pki_client_cacert_password')
]
){
def jobBuild = build job: "child-job", propagate: false, parameters: [
password(name: 'uma_auth_client_secret', value : "${uma_auth_client_secret}"),
password(name:'db_url', value: "${db_url}"),
password(name: 'pki_client_cacert_password', value: "${pki_client_cacert_password}")
]
}
}
}
}
}
}