jenkins编译结果通知推送到飞书
一、安装插件
1、安装Jenkins插件——Post build task
进入Jenkins——系统配置——插件管理——可选插件,输入Post build task搜索安装
2、重启Jenkins
安装完插件后重启Jenkins
二、飞书群中添加自定义机器人
1、添加机器人
2、复制保存机器人的webhook
三、Jenkins配置构建后脚本
1、打开jobs配置,选择“构建后操作”——Post build task
2、输入脚本内容
#!/bin/bash JOB_URL="${JENKINS_URL}job/${JOB_NAME}" getBuildState(){ buildNr=$1 result=$2 user=test passwd=test curl -u $user:$passwd ${JOB_URL}/${buildNr}/api/json |grep -Po $result } state=$(getBuildState $BUILD_NUMBER '"result":\s*"\K\w+') des=$(getBuildState $BUILD_NUMBER 'msg[":]+\K[^"]+') pro=$(getBuildState $BUILD_NUMBER 'fullName[":]+\K[^"]+') string1=$BUILD_DISPLAY_NAME string2=$JOB_BASE_NAME nowTime=$(date "+%Y-%m-%d %H:%M:%S") echo ${state} echo ${des} echo ${pro} changlog=$(awk 'NR==FNR {a[FNR]=$1; next} {print $0, a[FNR]}' <(echo "$pro") <(echo "$des") |tr ' ' '_' ) scm=$(echo $changlog | awk '{gsub(/ /,";")}1') if [[ "${state}" == "SUCCESS" ]] ; then curl -X POST -H "Content-Type: application/json" \ -d '{"msg_type":"post","content": {"post": {"zh_cn": {"title": "编译结果通知","content": [[{"tag": "text","text": "'"项目名称:$string2\n构建编号:第$BUILD_NUMBER次构建\n远程分支:$GIT_BRANCH\n构建状态:成功\n构建日期:$nowTime\n提交记录:$scm"'"}]]} } }}' \ https://open.feishu.cn/open-apis/bot/v2/hook/ else curl -X POST -H "Content-Type: application/json" \ -d '{"msg_type": "interactive","card": {"elements": [{"tag": "div","text": {"content": "'"项目名称: $string2\n构建编号: 第$BUILD_NUMBER次构建\n远程分支: $GIT_BRANCH\n构建状态: 失败\n构建日期: $nowTime\n提交记录:$scm\n"'","tag": "lark_md"}}, {"actions": [{"tag": "button","text": {"content": "点击查看错误日志","tag": "lark_md"},"url": "'"$JOB_URL/$BUILD_NUMBER/consoleText"'","type": "default","value": {}}],"tag": "action"}],"header": {"title": {"content": " 编译结果通知","tag": "plain_text"}}}}' \ https://open.feishu.cn/open-apis/bot/v2/hook fi
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?