簡體   English   中英

如何在 jenkins 管道 groovy 文件中使用 withcredentials 設置多個憑據

[英]How to Set multiple credentials using withcredentials in jenkins pipeline groovy file

我需要為一個工作設置兩個或多個憑據,我的計划是像下面這樣單獨使用它,以便它可以在多個工作中使用

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 文件中的任何必要位置調用這兩種方法作為輔助方法。

我需要在幾個工作中添加多個憑據,而在一個工作中只添加一個憑據。

在一個包裝器下添加憑證會起作用 - multiple-credentials ,但如果我在同一個包裝下添加多個憑證,我將無法重用。

我嘗試在上述方法中返回 Job 並使用相同的方法設置信用,但在構建時出現錯誤 -

錯誤:(CredentialBindingUtil.groovy,第 28 行)沒有方法簽名:xxxx.CredentialBindingUtil$__pfJasyptCredentialBinding_closure3.wrappers() 適用於參數類型:(xxx.CredentialBindingUtil$__pfJasyptCredentialBinding_closure3$_closure9) 值:[xxxx.CredentialBindingUtil$__pfJasyptCredentialBinding_closure3.wrappers() 11b4d391] [Office365connector] 沒有要通知的 webhook

如何將憑據附加到現有憑據?

正如評論中所討論的,可以通過配置塊來實現這一點。

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 頁面和較舊的博客文章,其中逐步解釋了如何配置不受支持的插件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM