2016-05-09 104 views
3

我有Jenkins安裝程序,沒有節點,所有的版本都在同一臺機器上運行。 我想設置一個Groovy腳本來清除舊的工作區,所以我想用:Jenkins:用Groovy清理工作區

proj.scm.processWorkspaceBeforeDeletion(@Nonnull Job<?,?> project, 
             @Nonnull FilePath workspace, 
             @Nonnull Node node) 

我應該把爲node在主站時什麼樣的價值?

+0

提示:還有的[工作區清理插件](https://wiki.jenkins-ci.org/display/JENKINS/Workspace +清理+插件),如果它不是關於舊的工作區,而是關於當前的。 –

+0

事實上,我想讓工作空間可供用戶進行調查,我只在工作空間超過一個月時才清空工作空間,這意味着沒有真正的活動。 – Gurvan

回答

3

執行以下腳本來清理所有詹金斯工作區與Groovy

import hudson.model.* // For each project 

for(item in Jenkins.instance.items)  
{ // check that job is not building 
    if(!item.isBuilding())  
    { 
     println("Wiping out workspace of job "+item.name)  
     item.doDoWipeOutWorkspace() 
    } else { 
     println("Skipping job "+item.name+", currently building") 
    } 
} 
+0

從['Hudson.getInstance()'](http://javadoc.jenkins-ci.org/hudson/model/Hudson.html#getInstance%28%29)開始使用'Jenkins.instance'不是更好嗎? )已棄用? –

+0

這樣做的工作:) – Gurvan

+0

groovy.lang.MissingMethodException:沒有方法的簽名:org.jenkinsci.plugins.workflow.job.WorkflowJob.doDoWipeOutWorkspace() – CuiPengFei