2015-11-18 166 views
1

我對Jenkins和Job DSL插件很新。經過一番研究後,我發現如何使用DSL創建工作,現在我試圖使用DSL刪除工作。 我知道用這個下面的代碼來禁用工作:如何在Jenkins中使用Job DSL插件(腳本)刪除作業?

//create new job 
//freeStyleJob("MyJob1", closure = null); 

job("MyJob1"){ 
    disabled(true); 
} 

這是工作完全正常。但是,我找不到任何方法在jenkins中刪除另一份工作。

請幫忙!

謝謝!

回答

2

Job Dsl插件的每個實例都跟蹤它創建的作業(和視圖)。當它再次運行時,您可以配置它對前一次運行此實例時存在的作業(和視圖)的作用,但這次不存在。

讓我們假設您必須創建用於創建作業的文件。

seed_jobdsl.groovy:

job('seed_all') { 
    steps { 
    dsl { 
     external('*_jobdsl.groovy') 
     // default behavior 
     // removeAction('IGNORE')  
    } 
    } 
} 

test_jobdsl.groovy:

job('test_stuff') { 
    steps { 
    shell('echo "I live!") 
    } 
} 

這將使由 「seed_all」 不變,即使它們不存在在工作列表中創建的下一個創造就業機會運行時間種子。

獲取要刪除工作,改變你的種子工作代碼: seed_jobdsl.groovy:

job('seed_all') { 
    steps { 
    dsl { 
     external('*_jobdsl.groovy') 
     removeAction('DELETE')  
    } 
    } 
} 

現在,運行「seed_all」的工作,以應用更改(「seed_all」改寫自己的配置在運行時)。然後進行以下更改:

test_jobdsl.groovy:

job('test_other') { 
    steps { 
    shell('echo "The job is dead, long live the new job!"') 
    } 
} 

運行 「seed_all」 一次。您注意到「test_stuff」將被刪除,並且「test_other」將被創建。如果您刪除「test_jobdsl.groovy」,然後運行「seed_all」,則「test_other」將被刪除。

4

要刪除作業,必須在「流程作業DSL」構建步驟配置中將「刪除作業的操作」選項設置爲「刪除」。然後從腳本中刪除作業並運行種子作業。

相關問題