我需要为一个作业设置两个或多个凭据,我的计划是像下面这样单独使用它,以便它可以在多个作业中使用
static void _artifactoryCredentialBinding(Job job) {
job.with {
wrappers {
credentialsBinding {
usernamePassword('USERNAME', 'PASSWORD', 'xxxxx')
}
}
}
}
static void _jasyptCredentialBinding(Job job) {
return job.with {
wrappers {
credentialsBinding {
usernamePassword('', 'PASSWORD', 'jasypt-credentials')
}
}
}
}
当我这样做时,第一个凭据被第二个凭据覆盖。
我将在我的 groovy 文件中在必要时调用这两个方法作为辅助方法。
我需要在少数作业中添加多个凭据,而在一个作业中仅添加一个凭据。
在一个包装器下添加凭据将起作用 - 多个凭据,但如果我在同一包装器下添加多个凭据,我将无法重用。
我尝试以上述方法返回作业,并使用相同的方法来设置信条,但在构建时出现错误 -
错误:(CredentialBindingUtil.groovy,第 28 行(方法无签名:xxxx.CredentialBindingUtil$__pfJasyptCredentialBinding_closure3.wrappers(( 适用于参数类型:(xxx.CredentialBindingUtil$__pfJasyptCredentialBinding_closure3$_closure9( 值:[xxxx.CredentialBindingUtil$__pfJasyptCredentialBinding_closure3$_closure9@11b4d391] [Office365连接器]没有要通知的网络钩子
如何使凭据与现有凭据一起附加?
如评论中所述,可以通过配置块来实现这一点。
static void _artifactoryCredentialBinding(def job) {
job.with {
configure { node ->
node / 'buildWrappers' / 'org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper' / 'bindings' << 'org.jenkinsci.plugins.credentialsbinding.impl.UsernamePasswordMultiBinding' {
usernameVariable 'some-credential-id'
credentialsId PASS1
passwordVariable USER1
}
}
}
}
static void _jasyptCredentialBinding(def job) {
job.with {
configure { node ->
node / 'buildWrappers' / 'org.jenkinsci.plugins.credentialsbinding.impl.SecretBuildWrapper' / 'bindings' << 'org.jenkinsci.plugins.credentialsbinding.impl.UsernamePasswordMultiBinding' {
usernameVariable 'some-credential-id'
credentialsId PASS2
passwordVariable USER2
}
}
}
}
def a_job = job('a-temporaryjob')
_artifactoryCredentialBinding(a_job)
_jasyptCredentialBinding(a_job)
要了解配置块的工作原理,我强烈建议阅读 wiki 页面和一篇较旧的博客文章,其中逐步解释了如何配置不受支持的插件。