2014-04-14 155 views
4

我是新來詹金斯,需要一些幫助..詹金斯平行運行腳本

我有4個shell腳本:test1.sh,test2.sh,test3.sh和test4.sh

我想測試2 .sh只在test1.sh運行成功時運行,而test4.sh只在test3.sh運行成功時才運行。 我也想讓test1.sh和test3.sh並行運行。

我怎麼能在詹金斯實現它?

我正在使用「在遠程主機上使用ssh執行shell腳本」和「有條件的步驟(多個)」(只是在探索)。我還設置了密鑰以便與遠程服務器進行通信。

使用屏幕截圖或其他方式的插圖會有所幫助。

謝謝!

回答

7

首先,確保test1.sh和test3.sh成功時返回標準成功代碼(0)。然後簡單的方法,這在任何命令行工作,而不僅僅是詹金斯,就是用這個命令行:

((test1.sh && test2.sh) &) ; ((test3.sh && test4.sh) &) 

每對括號形成一個子shell,雙amperands表示「如果第一次成功,然後運行第二個」 ,而單符號意味着「在backgorund中運行」。所以你可以得到相當於兩個後臺運行的shell,每個運行兩個腳本,如果第一個腳本不返回0,將會退出。

詹金斯特定的解決方案是有一個包含兩個(或更多)跑步者的節點。創建兩個作業,並將這兩個作業連接到該節點。每個作業運行一個shell,或者是test1.sh && test2.shtest3.sh && test4.sh