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
(注意我从未使用过它)
如果您希望在声明中使用参数,您可以将它们写在 pipeline
部分中。
例如
pipeline {
agent any
parameters {
string(name: 'script_args', defaultValue: '--out_file --purge', description: 'Command line args to pass to script')
}
我正在尝试将 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
(注意我从未使用过它)
如果您希望在声明中使用参数,您可以将它们写在 pipeline
部分中。
例如
pipeline {
agent any
parameters {
string(name: 'script_args', defaultValue: '--out_file --purge', description: 'Command line args to pass to script')
}