前言
在使用curl的方式使用一臺主Jenkins調(diào)用子Jenkins時馍悟,子Jenkins構(gòu)建失敗不知道寝衫,特需要在構(gòu)建失敗時觸發(fā)消息通知
解決方案:
創(chuàng)建一個新的項(xiàng)目,該項(xiàng)目增加一個構(gòu)建觸發(fā)器采记,關(guān)注需要構(gòu)建的項(xiàng)目
一宾毒、創(chuàng)建主項(xiàng)目 MyMainTest
二回还、創(chuàng)建通知項(xiàng)目 AlertFail
2.1 創(chuàng)建項(xiàng)目
2.2 設(shè)置構(gòu)建觸發(fā)器坷备,配置關(guān)注的主項(xiàng)目
2.3 添加Build Steps
獲取構(gòu)建結(jié)果
: http://127.0.0.1:8080/job/xxxx/lastBuild/api/json
獲取構(gòu)建日志
: http://127.0.0.1:8080/job/xxx/lastBuild/consoleText
# 拉取構(gòu)建結(jié)果
# curl -X GET "http://127.0.0.1:8080/job/關(guān)注的項(xiàng)目/lastBuild/api/json" --user username:usertoken
# 獲取構(gòu)建狀態(tài)
statusStr=$(curl -X GET "http://127.0.0.1:8080/job/MyMainTest/lastBuild/api/json" --user jim:gdfgsfrte3454dgdfgf)
# 判斷是否構(gòu)建失敗
findStr='"result":"FAILURE"'
if [[ $statusStr == *$findStr* ]]; then
echo "構(gòu)建失敗"
# 構(gòu)建失敗后發(fā)送
bot_token="345dsgf:ccfgdfgfgdgf_-io"
chat_id="3453456435ccc"
ios_sendTo=$chat_id
send_msg="@abc @123 iOS構(gòu)建失敗"
send_msg_encoded=$(perl -MURI::Escape -e "print uri_escape('${send_msg}');")
curl -s -X POST \
"https://api.telegram.org/bot${bot_token}/sendMessage?chat_id=${ios_sendTo}" -d parse_mode="HTML" -d text=${send_msg_encoded}
fi