所有新工作的Jenkins SVN凭证

时间:2016-09-14 11:51:29

标签: svn jenkins

我正在尝试为所有新作业(从Jenkins UI外部创建)自动化svn凭据。我知道有关于Credentials插件的解决方案,只需从下拉列表中选择凭据,但这是不同的:

我有一个Tomcat Web应用程序,它创建一个以svn checkout开头的jenkins作业。问题是,即使将scm svn凭据传递给作业,它仍然希望我从下拉列表中手动选择凭据。

是否有任何插件/方法可以为任何新作业默认设置SVN凭据?

谢谢!

1 个答案:

答案 0 :(得分: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

步骤#2 因此,形成Tomcat或您将使用的任何内容,将“devops_dev”作为参数传递给作业。

第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发送的。