jenkins添加腳本待程序啓動成功才退出構建

需求

jenkins在構建完後,會將去執行遠程服務器上面的腳本,希望jenkins中能夠打印腳本執行和程序啓動的日誌。同時當發現日誌中包含啓動成功標記的時候,標記jenkins構建成功,否則超過一定時間還沒有出現成功標記,則構建失敗。

示例

代碼啓動成功時候會在日誌文件中輸出:

[] 2020-06-24 03:24:41 INFO  com.gongstring.config.AfterStartRunner [39][main] - ============== Start plugins now ==============
[] 2020-06-24 03:24:41 INFO  com.gongstring.config.AfterStartRunner [55][main] - ========== gongstring-user.service       Running Now ==========

其中Running Now關鍵字出現的時候,說明啓動成功。

在jenkins對應的shell腳本中添加如下腳本

keywords="Running Now"
logfile="/logs/gongstring.user/out.log"
{ sed /"$keywords"/q; kill $!; } < <(exec timeout 2m tail -Fn 0 $logfile)

echo "------  start gongstring.user docker container success  ------"

其中2m是表示如果1分鐘之類還沒有日誌輸出,認爲啓動失敗,防止無限等待(當然如果超過一定時間,jenkins會認爲超時,執行結果是黃色)

exit 1; 表示如果執行超時還沒有返回成功標記,就通知jenkins構建失敗。

最終效果

jenkins構建完後的日誌:

[] 2020-06-24 03:24:41 INFO  com.gongstring.config.AfterStartRunner [39][main] - ============== Start plugins now ==============
[] 2020-06-24 03:24:41 INFO  com.gongstring.config.AfterStartRunner [55][main] - ========== gongstring-user.service       Running Now ==========
------  start gongstring.user docker container success  ------
SSH: EXEC: completed after 25,215 ms
SSH: Disconnecting configuration [生產-171.101.41.71-gongstring] ...
SSH: Transferred 2 file(s)

Finished: SUCCESS

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章