![](/img/trans.png)
[英]How to set subversion workspace format with a Groovy script in Jenkins?
[英]Jenkins set SCMCheckoutStrategy on jobs using groovy script
從TeamCity遷移到Jenkins,我在jenkins控制台上使用了一個時髦的腳本來設置我的所有工作。 我使用大多數必需的設置來設置作業“ template.example”,然后運行以下代碼:
void createJobs() {
def jenkins = jenkins.model.Jenkins.getInstance()
def template = jenkins.getItem("template.example")
if (!template) {
println("FATAL - template job not found")
return
}
def projects = [ "projectname" : "svn://hostname/path" ]
projects.each() { key, svn ->
def jobid = "${key}.checkin"
println "\nCreating job: ${jobid}"
try {
def job = jenkins.copy(template,jobid)
job.scm = new hudson.scm.SubversionSCM(svn)
job.save()
println("Created job: ${jobid} ${svn}")
} catch (Exception ex) {
println("Failed to create job: ${jobid}\n "+ex.toString())
}
}
}
我的問題是,我希望SCM結帳策略不是默認的“盡可能多地使用svn更新”。 “通過首先刪除未版本控制的文件來模擬干凈的結帳...”,並且不會從template.example項目中復制該內容。
我嘗試使用以下方法閱讀SCM策略
def strategies = jenkins.scm.SCMCheckoutStrategyDescriptor.all()
strategies.each() { k -> println("strategy: "+k.getDisplayName()
但這只會返回一個策略“默認”。 其他策略在哪里,以及如何在項目中設置所需的策略(其中有100多個,因此手動執行此操作不是一種選擇)。
我還需要以某種方式在每個項目上設置svn用戶名和密碼。
一種替代方法是修改復制的示例job.scm上的svnURL而不是替換它,這可能還具有保留配置的用戶名和密碼的優點。 但是,如何在代碼中做到這一點呢?
謝謝,愛德。
您要更改的SCM策略實際上作為hudson.scm.subversion.WorkspaceUpdater
駐留在hudson.scm.SubversionSCM
對象中。
代碼中的scm
對象應具有setWorkspaceUpdater()
方法,可用於設置所需的SCM策略。
SCM策略是WorkspaceUpdater:
子類WorkspaceUpdater:
http WorkspaceUpdater:
//grepcode.com/search/usages? WorkspaceUpdater:
repo1.maven.org$maven2@org.jvnet.hudson.plugins$subversion@2.0.0@hudson$scm$subversion@ WorkspaceUpdater&開始= 0&類型=類型&K = d
嘗試復制新代碼發布的版本時,自己遇到此問題。 瀏覽了許多metaClass信息,以找到設置此行為的正確方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.