Groovy 中的 Jenkins 密码参数

Jenkins Password Param in Groovy

我正在尝试将 passwordParam 添加到我的 Jenkins groovy 文件中。 目的是让作业在运行时获取密码

pipelineJob(jobName) {
    displayName(displayString)
    parameters {
        choiceParam('ARTEFACT',artefactName,'Artefact to deploy?')
        choiceParam('CLUSTER',cluster,'Cluster to push to')
        stringParam('BRANCH','main','What branch should be used?')
        passwordParam('proxyUser', 'password123', 'ProxyPassword')
    }

但是我得到了错误

ERROR: (job_delete_release.groovy, line 23) No signature of method: javaposse.jobdsl.dsl.helpers.BuildParametersContext.passwordParam() is applicable for argument types: (java.lang.String, java.lang.String, java.lang.String) values: [proxyUser, password123, ProxyPassword]

根据文档here应该是可以的。

我不确定我做错了什么,或者我是否遗漏了一些非常明显的东西。

您似乎在混合使用 DSL 和声明语法。

您在这里写的是 JobDSL,但是您的 link 是声明性代码。 在您正在编写的部分中,您只能使用可在此处找到的 JobDSL 可用参数:

点击 https://jenkinsci.github.io/job-dsl-plugin/#method/javaposse.jobdsl.dsl.jobs.MavenJob.parameters

参数中的三个点

所以对于 JobDSL,我相信你会使用 nonStoredPasswordParam(注意我从未使用过它)

https://jenkinsci.github.io/job-dsl-plugin/#path/javaposse.jobdsl.dsl.jobs.MavenJob.parameters-nonStoredPasswordParam

如果您希望在声明中使用参数,您可以将它们写在 pipeline 部分中。 例如

pipeline {
  agent any
  parameters {
    string(name: 'script_args', defaultValue: '--out_file --purge', description: 'Command line args to pass to script')
  }