CircleCI + pushplus:构建结果推到微信
效果:Job 结束时,微信收到仓库、分支、构建号和作业链接。不要在每个 step 都推,收尾发 1 条即可。
CircleCI 没有内置 pushplus。在 .circleci/config.yml 里 curl,token 用项目环境变量 PUSHPLUS_TOKEN。
前置条件
- 一个 pushplus token(官网扫码获取)
- 能改仓库配置,以及 Project Settings 的环境变量
配置步骤
- 打开 CircleCI 项目 → Project Settings → Environment Variables,新增
PUSHPLUS_TOKEN,值为你的 token。不要写进 YAML。 - 在
.circleci/config.yml的 Job 末尾增加一步,when: always保证失败也会推:
version: 2.1
jobs:
build:
docker:
- image: cimg/base:current
steps:
- checkout
- run: echo "build"
- run:
name: notify pushplus
when: always
command: |
curl -s -X POST "https://www.pushplus.plus/send" \
-H "Content-Type: application/json" \
-d "{
\"token\":\"${PUSHPLUS_TOKEN}\",
\"title\":\"CircleCI ${CIRCLE_PROJECT_REPONAME}\",
\"content\":\"job=${CIRCLE_JOB}\\nbranch=${CIRCLE_BRANCH}\\nbuild=${CIRCLE_BUILD_NUM}\\nurl=${CIRCLE_BUILD_URL}\",
\"template\":\"markdown\"
}"
CIRCLE_PROJECT_REPONAME、CIRCLE_BRANCH、CIRCLE_BUILD_NUM、CIRCLE_BUILD_URL、CIRCLE_JOB由 CircleCI 注入。content必填。- 提交后在 Pipelines 里 Re-run。Executor 需能访问
www.pushplus.plus。
只想失败才推时,把 when: always 改成 when: on_fail。完整字段见 消息接口。
验证
curl -X POST "https://www.pushplus.plus/send" \
-H "Content-Type: application/json" \
-d '{"token":"你的token","title":"CircleCI 配置测试","content":"token 可用","template":"markdown"}'
常见问题
变量是空的? 确认名称是 PUSHPLUS_TOKEN,且 Job 没有用到读不到项目变量的受限上下文。