我正试图将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]
根据这里的文件,这应该是可能的。
我不确定我做错了什么,或者我是否错过了一些明显的东西。
看起来像是混合了DSL和Declarative语法。
您在这里写的是JobDSL,但是您的链接是到声明性代码的。在您编写的部分中,您只能使用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-非存储密码参数
如果您想要Declarative中的参数,您可以将它们写在pipeline
部分中。例如
pipeline {
agent any
parameters {
string(name: 'script_args', defaultValue: '--out_file --purge', description: 'Command line args to pass to script')
}