Jenkins + Server酱:流水线构建结果推送到微信
效果:Jenkins 流水线构建成功或失败时,自动把结果推送到微信
前置条件
- Server酱 SendKey:登录 sct.ftqq.com,在「SendKey」页面复制(30 秒获取教程)
- Jenkins 实例可访问公网(能发起 HTTPS 请求到 sctapi.ftqq.com)
- Pipeline 项目(声明式或脚本式均可)
配置步骤
1. 把 SendKey 存到 Jenkins 凭据
在 Jenkins 中添加一个 Secret text 类型的凭据,值为你的 SendKey,ID 设为 serverchan-sendkey。不要在 Jenkinsfile 里硬编码 SendKey。
2. 在 Pipeline 的 post 块中调用 Server酱
在声明式 Pipeline 的 post 块里,用 withCredentials 注入凭据,再用 sh 执行 curl:
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building...'
}
}
}
post {
success {
script {
withCredentials([string(credentialsId: 'serverchan-sendkey', variable: 'SERVERCHAN_SENDKEY')]) {
sh '''
curl -sS -X POST "https://sctapi.ftqq.com/${SERVERCHAN_SENDKEY}.send" \
--data-urlencode "title=【构建成功】${JOB_NAME} #${BUILD_NUMBER}" \
--data-urlencode "desp=详情见 ${BUILD_URL}"
'''
}
}
}
failure {
script {
withCredentials([string(credentialsId: 'serverchan-sendkey', variable: 'SERVERCHAN_SENDKEY')]) {
sh '''
curl -sS -X POST "https://sctapi.ftqq.com/${SERVERCHAN_SENDKEY}.send" \
--data-urlencode "title=【构建失败】${JOB_NAME} #${BUILD_NUMBER}" \
--data-urlencode "desp=详情见 ${BUILD_URL}"
'''
}
}
}
}
}
3. Server酱³ 用户改用对应端点
如果 SendKey 以 sctp 开头,API 端点改为 https://你的UID.push.ft07.com/send/你的SENDKEY.send,其中 UID 取自 sctp 后的数字。
如需推送到企业微信/钉钉/飞书群,参见通道配置。
常见问题
免费额度是多少?
免费用户每天 5 条,每分钟上限 50 条。订阅会员目前特价最低 3 元/月,一天最多可发 1000 条(价格详情)。
构建跑完没收到消息?
先在 Jenkins 构建日志里看 curl 是否报错;再检查 SendKey 是否正确、凭据 ID 是否匹配。仍无法解决可查常见问题与排查。
多条流水线同时推送会被限流吗?
Server酱 每分钟上限 50 条。若有多条流水线并发,建议在 title 里区分来源,或错开推送。
可以用 HTTP Request 插件代替 curl 吗?
可以。HTTP Request 插件能发任意 HTTP POST,把 URL 指向 Server酱 API、body 传 title 和 desp 即可,效果与 curl 一致。
相关集成
- /integrations/python/ —— Python 脚本推送
- /integrations/qinglong/ —— 青龙面板任务通知
- /integrations/uptime-kuma/ —— Uptime Kuma 宕机告警