# CircleCI 接入 Server酱：流水线构建状态推送到微信（2026 教程）

> 通过 CircleCI job 内 curl 或 Webhook 接入 Server酱，将构建成功或失败状态实时推送到微信，附 config.yml 配置示例。

- 网页版：https://sct.ftqq.com/docs/integrations/circleci/
- 更新日期：2026-07-17

# CircleCI + Server酱：流水线构建状态推送到微信

> 效果：CircleCI 流水线构建成功或失败时，自动将状态和链接推送到微信

## 前置条件

- 获取 Server酱 SendKey（[30 秒获取教程](https://sct.ftqq.com/docs/getting-started/sendkey/)）
- 拥有 CircleCI 项目及修改 `.circleci/config.yml` 的权限

## 配置步骤

CircleCI 接入 Server酱 推荐在 job 内使用 curl 直连 API，这样可以获取构建状态等动态内容。

**1. 配置 SendKey 环境变量**

在 CircleCI 项目或 Context 中添加环境变量 `SERVERCHAN_SENDKEY`，值为你的 SendKey。不要将 SendKey 硬编码写进 config.yml 文件（具体环境变量配置入口以应用内实际显示为准）。

**2. 修改 config.yml**

在 `.circleci/config.yml` 的 steps 中增加一个 run 步骤，调用 Server酱 API：

```yaml
steps:
  - run:
      name: Send Notification
      command: |
        curl -sS -X POST "https://sctapi.ftqq.com/${SERVERCHAN_SENDKEY}.send" \
          --data-urlencode "title=CircleCI $CIRCLE_JOB" \
          --data-urlencode "desp=$CIRCLE_BUILD_URL"
```

**3. 使用 Webhook 方式（可选）**

如果仅需固定文案通知，可在 Project Settings → Webhooks 中，将 URL 填写为 `https://sctapi.ftqq.com/你的SENDKEY.send?title=CircleCI`。此方式发送固定 JSON，无法直接携带构建状态等动态内容，如需动态内容需中转处理。

## 完整示例

以下是一个包含构建通知步骤的完整 job 配置。如需根据构建成功或失败发送不同内容，请参考 CircleCI 官方文档配置条件执行步骤。

```yaml
version: 2.1
jobs:
  build:
    docker:
      - image: cimg/base:stable
    steps:
      - run:
          name: Build
          command: echo "Simulating build process..."
      - run:
          name: Notify
          command: |
            curl -sS -X POST "https://sctapi.ftqq.com/${SERVERCHAN_SENDKEY}.send" \
              --data-urlencode "title=CircleCI $CIRCLE_JOB" \
              --data-urlencode "desp=$CIRCLE_BUILD_URL"
```

## 常见问题

**发送额度是多少？**

免费用户每日发送 5 条，每分钟上限 50 条；订阅会员目前特价最低 3 元/月，一天最多可发 1000 条（[价格详情](https://sct.ftqq.com/subscribe)）。

**消息没有收到怎么办？**

检查 CircleCI job 日志中 curl 请求是否报错，并参考 [常见问题与排查](https://sct.ftqq.com/docs/getting-started/faq/) 检查 SendKey 与通道配置。Server酱 支持推送到微信服务号/企业微信/钉钉/飞书等多个通道，详见 /getting-started/channels/。

**频率超限怎么处理？**

单个 SendKey 每分钟请求上限为 50。若同时触发大量并发构建，建议在脚本中加入延时，或合并通知内容。

**Webhook 方式如何推送动态内容？**

CircleCI 原生 Webhooks 发送固定 JSON 结构，无法直接修改为 Server酱 所需的参数格式。如需推送构建详情等动态内容，建议使用 job 内 curl 直连 API 的方式。

## 相关集成

- [/integrations/python/](https://sct.ftqq.com/docs/integrations/python/) —— Python 脚本推送
- [/integrations/uptime-kuma/](https://sct.ftqq.com/docs/integrations/uptime-kuma/) —— Uptime Kuma 宕机告警
- [/integrations/qinglong/](https://sct.ftqq.com/docs/integrations/qinglong/) —— 青龙面板任务通知


## 懒人方案：把这段话复制给你的 AI 助手

把下面这段文字原样粘贴给 Claude Code、Cursor 或任何 AI 编程助手，它就会替你完成 Server酱 的接入：

```text
请帮我把 Server酱 微信通知接入到我当前的项目/工具中：
1. API：POST https://sctapi.ftqq.com/{SendKey}.send，参数 title（必填，不能含换行）、desp（正文，支持 Markdown，可选）；成功时返回 JSON 的 code 为 0。
2. 如果我的 SendKey 以 sctp 开头，则改用 https://{uid}.push.ft07.com/send/{SendKey}.send，uid 是 SendKey 中 sctp 与 t 之间的数字。
3. SendKey 从环境变量 SERVERCHAN_SENDKEY 读取；如果没有，提醒我到 https://sct.ftqq.com 免费获取（每天 5 条额度）。
4. 安全要求：不要把 SendKey 硬编码进代码、不要打印到日志、不要提交到 git。
5. 频率约定：任务结束发 1 条结果摘要即可，批量任务合并成一条，不要每步都推。
请根据我当前的项目和场景直接写好代码/配置并验证。
```

