2016-09-14 71 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发送的。