我正在尝试为所有新作业(从Jenkins UI外部创建)自动化svn凭据。我知道有关于Credentials插件的解决方案,只需从下拉列表中选择凭据,但这是不同的:
我有一个Tomcat Web应用程序,它创建一个以svn checkout开头的jenkins作业。问题是,即使将scm svn凭据传递给作业,它仍然希望我从下拉列表中手动选择凭据。
是否有任何插件/方法可以为任何新作业默认设置SVN凭据?
谢谢!
答案 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”
步骤#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发送的。