2017-10-19 26 views

回答

1

我不知道有沒有辦法做你想要什麼,但我認爲你可以做一些事情,讓你75%-100%的有(取決於您希望在發生錯誤時發生供以後的步驟是什麼)與共享庫:

pipeline { 
    stages { 
    stage('Do work') { 
     steps { 
      stepsChuckNorrisWrote { 
     ... 
      } 
     } 
    } 
    } 
} 

然後在名爲stepsChuckNorrisWrote的共享庫中創建一個全局變量。你在這裏傳遞一個閉包。該關閉可以包含您想要的所有步驟。裹在一個try/catch是封閉的執行,不讓它失敗。

事情是這樣的:

// vars/stepsChuckNorrisWrote.groovy 
def call(Closure body) { 
    node('windows') { 
     try { 
      body() 
     } catch (all) { 
      // handle errors here 
     } 
    } 
} 

使用這種方法,只要第一步失敗了,沒有其他人將繼續。可能有一些方式來拉的每一步走出封閉的,基本上在一個try/catch包起來,但我不知道該怎麼做這樣的事情。

+0

感謝羅布,這就是我認爲可能是唯一的選擇。我想刪除需要寫的'steps'一部分,但要通過代碼表明這是不可能:( –