2016-09-14 29 views
0

我想爲所有新工作(從Jenkins UI外部創建)自動完成svn憑證。我知道只有從下拉列表中選擇憑證纔有解決方案,但這是不同的:詹金斯所有新工作的SVN憑證

我有一個Tomcat Web應用程序,它創建了一個以svn結帳開始的jenkins作業。問題是,即使scm svn證書被傳遞給作業,它仍然期望我從下拉列表中手動選擇Credentials。

是否有任何插件/方式默認設置SVN憑據的任何新工作?

謝謝!

回答

1

選項1:

編輯:如果你只是想有一份工作一個默認憑據,使用流水線插件,只是分配給它,你把它給憑證的「ID」。

創建credentialId參數,給它一個默認值(憑證的id)。

在你的Groovy腳本做:

checkout([$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[credentialsId: "${credentialId}" ..........//The rest 

您可以簡化過程,做到這一點:

選項2:如果你想這樣做,作爲一個DINAMIC parammeter:

步驟#1 創建一個憑證並給它一個ID,例如:

在這種情況下,「devops _dev」

enter image description here

第二步 因此,形成Tomcat或任何你會使用,通過 「devops_dev」 的工作作爲parammeter。

步驟#3 在你應該做流水線插件(在這一刻最流行的和「是」)

步驟#作業4 在你的SVN結帳,你可以這樣做:

checkout([$class: 'SubversionSCM', additionalCredentials: [], excludedCommitMessages: '', excludedRegions: '', excludedRevprop: '', excludedUsers: '', filterChangelog: false, ignoreDirPropChanges: false, includedRegions: '', locations: [[credentialsId: "${credentialId}", depthOption: 'infinity', ignoreExternalsOption: true, local: 'project', remote: "${svn}"]], workspaceUpdater: [$class: 'CheckoutUpdater']]) 

請注意,您的工作必須是名爲「credentialId」的參數表,請注意,有$ {credentialId}作爲參數,在這種情況下,它是從tomcat發送的。