2016-02-26 173 views
0

我在Jenkins中有一個將代碼複製到多個服務器的power shell作業。有時,腳本可能無法到達服務器,並且會破壞構建。當我從列表中刪除服務器並恢復構建時,它從步驟1(服務器1)開始。 Jenkins有什麼方法可以暫停特定步驟的構建,並讓用戶從停止的地方恢復構建。如何暫停和恢復Jenkins構建

請讓我知道。

+0

我還沒有聽說過這樣的功能,但你檢查過Jenkins插件嗎? – Cobster

+0

是的,我查了一下,沒有找到符合我要求的東西。 – user1550159

+0

我不確定誰會創建這樣的插件!對不起,這聽起來很奇怪。 通常它應該由腳本本身處理。 – vins

回答

0

您可以用Jenkins Pipeline實現所需的行爲。下面是應該解釋我的想法的代碼草案。

def remoteServers = [ipaddr1, ipaddr2,...] // define all remote hosts servers in the groovy code 
for (int i=0; i<remoteServers.size(); i++) { // c-style loop is to avoid JENKINS-26481 
    def ip = remoteServers[i] 
    try { 
     bat "your script here" // ip should be passed as a parameter 
           // or interpolated right within the inlined script 
    catch { 
     input "Retry for ${ip}?" // This will pause the build waiting for user action 
     i-- // repeat the iteration 
    } 
} 

然而,這不允許在任意時刻暫停建設(在技術上它可以)。