You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkinsfile中withCredentials支持的凭证类型、参数及GUI显示问询

Jenkins withCredentials 支持的凭证类型详解

下面是Credentials Binding插件中withCredentials支持的所有凭证类型,包含对应的关键字、参数及Jenkins GUI中的呈现方式:

1. 用户名密码凭证

  • 关键字:usernamePassword
  • 参数:
    • credentialsId:必填,对应Jenkins凭证库中该凭证的唯一ID
    • usernameVariable:可选,指定存储用户名的环境变量名,默认值为USERNAME
    • passwordVariable:可选,指定存储密码的环境变量名,默认值为PASSWORD
  • GUI呈现:在Jenkins凭证创建界面选择「用户名和密码」类型,填写用户名、密码,可添加描述信息。
  • 示例代码:
withCredentials([usernamePassword(
    credentialsId: 'prod-db-creds',
    usernameVariable: 'DB_USER',
    passwordVariable: 'DB_PASS'
)]) {
    sh 'mysql -u${DB_USER} -p${DB_PASS} -e "SHOW DATABASES;"'
}

2. 保密字符串凭证(Secret Text)

  • 关键字:string
  • 参数:
    • credentialsId:必填,凭证的唯一ID
    • variable:必填,指定存储保密字符串的环境变量名
  • GUI呈现:选择「Secret text」类型,输入需要保密的字符串(如API密钥、Token),添加描述。
  • 示例代码:
withCredentials([string(
    credentialsId: 'github-api-token',
    variable: 'GITHUB_TOKEN'
)]) {
    sh 'curl -H "Authorization: token ${GITHUB_TOKEN}" https://api.github.com/user'
}

3. 保密文件凭证(Secret File)

  • 关键字:file
  • 参数:
    • credentialsId:必填,凭证的唯一ID
    • variable:必填,指定存储文件路径的环境变量名(Jenkins会将凭证文件临时复制到节点上,该变量指向临时文件路径)
  • GUI呈现:选择「Secret file」类型,上传本地的保密文件(如配置文件、密钥文件),添加描述。
  • 示例代码:
withCredentials([file(
    credentialsId: 'aws-config-file',
    variable: 'AWS_CONFIG_PATH'
)]) {
    sh 'aws configure --profile prod set config_file ${AWS_CONFIG_PATH}'
}

4. SSH用户名+私钥凭证

  • 关键字:sshUserPrivateKey
  • 参数:
    • credentialsId:必填,凭证的唯一ID
    • usernameVariable:可选,存储SSH用户名的环境变量名,默认值为USERNAME
    • privateKeyVariable:可选,存储私钥内容的环境变量名,默认值为SSH_PRIVATE_KEY
    • passphraseVariable:可选,存储私钥密码的环境变量名(仅当私钥设置了密码时需要)
  • GUI呈现:选择「SSH Username with private key」类型,填写用户名,可选择直接粘贴私钥内容或从本地文件加载私钥,若私钥有密码则填写Passphrase,添加描述。
  • 示例代码:
withCredentials([sshUserPrivateKey(
    credentialsId: 'server-ssh-key',
    usernameVariable: 'SSH_USER',
    privateKeyVariable: 'SSH_KEY'
)]) {
    sh 'ssh -i ${SSH_KEY} ${SSH_USER}@server.example.com "uptime"'
}

5. 证书凭证(PKCS#12)

  • 关键字:certificate
  • 参数:
    • credentialsId:必填,凭证的唯一ID
    • keystoreVariable:必填,存储密钥库临时文件路径的环境变量名
    • passwordVariable:可选,存储密钥库密码的环境变量名
    • aliasVariable:可选,存储证书别名的环境变量名(当密钥库包含多个证书时使用)
  • GUI呈现:选择「Certificate」类型,上传PKCS#12格式的证书文件,填写密钥库密码,可添加证书别名和描述。
  • 示例代码:
withCredentials([certificate(
    credentialsId: 'client-cert',
    keystoreVariable: 'KEYSTORE_PATH',
    passwordVariable: 'KEYSTORE_PASS'
)]) {
    sh 'java -Djavax.net.ssl.keyStore=${KEYSTORE_PATH} -Djavax.net.ssl.keyStorePassword=${KEYSTORE_PASS} MyApp'
}

6. 多凭证集合

  • 关键字:multi
  • 参数:
    • credentials:必填,包含多个其他凭证类型的数组,可同时绑定多种不同类型的凭证
  • GUI呈现:无单独的GUI创建类型,需在withCredentials中组合已创建的各类凭证使用。
  • 示例代码:
withCredentials([multi(
    credentials: [
        usernamePassword(credentialsId: 'db-creds', usernameVariable: 'DB_USER', passwordVariable: 'DB_PASS'),
        string(credentialsId: 'api-token', variable: 'API_TOKEN')
    ]
)]) {
    sh 'python app.py --db-user ${DB_USER} --db-pass ${DB_PASS} --api-token ${API_TOKEN}'
}

内容的提问来源于stack exchange,提问作者cowlinator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 14:55:21