前言
在使用curl的方式使用一台主Jenkins调用子Jenkins时,子Jenkins构建失败不知道,特需要在构建失败时触发消息通知
解决方案:
创建一个新的项目,该项目增加一个构建触发器,关注需要构建的项目
一、创建主项目 MyMainTest
jenkins8_alert0.png二、创建通知项目 AlertFail
2.1 创建项目
jenkins8_alert1.png
2.2 设置构建触发器,配置关注的主项目
jenkins8_alert2.png
2.3 添加Build Steps
jenkins8_alert3.png
获取构建结果
: http://127.0.0.1:8080/job/xxxx/lastBuild/api/json
获取构建日志
: http://127.0.0.1:8080/job/xxx/lastBuild/consoleText
# 拉取构建结果
# curl -X GET "http://127.0.0.1:8080/job/关注的项目/lastBuild/api/json" --user username:usertoken
# 获取构建状态
statusStr=$(curl -X GET "http://127.0.0.1:8080/job/MyMainTest/lastBuild/api/json" --user jim:gdfgsfrte3454dgdfgf)
# 判断是否构建失败
findStr='"result":"FAILURE"'
if [[ $statusStr == *$findStr* ]]; then
echo "构建失败"
# 构建失败后发送
bot_token="345dsgf:ccfgdfgfgdgf_-io"
chat_id="3453456435ccc"
ios_sendTo=$chat_id
send_msg="@abc @123 iOS构建失败"
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
网友评论