跳到主内容
AIHO 2026 全新改版上线

用 AI Agent 全自动部署:从 Git Push 到生产环境零手工

适用场景

  • 个人项目 / 小团队,不想手动部署
  • 想让 AI 做部署决策(是否回滚、是否发公告)
  • 需要部署后自动验证的

架构

git push main
  → GitHub Actions 触发
    → Step 1: 跑测试(pnpm test)
    → Step 2: Claude Code 审查改动
    → Step 3: 构建(pnpm build)
    → Step 4: 部署到 Vercel
    → Step 5: Claude Code 验证生产环境
    → Step 6: 失败则自动回滚 + 通知

第一步:基础 CI

.github/workflows/deploy.yml

name: Deploy
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    permissions:
      contents: write
      deployments: write
    steps:
      - uses: actions/checkout@v4
      - uses: pnpm/action-setup@v2
        with: { version: 9 }
      - uses: actions/setup-node@v4
        with: { node-version: 22, cache: pnpm }

      - name: Install
        run: pnpm install --frozen-lockfile

      - name: Test
        run: pnpm test

      - name: Build
        run: pnpm build
        env:
          VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}

第二步:AI 审查改动

在 build 前加 Claude Code 审查:

      - name: AI Review Changes
        uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          prompt: |
            检查这次改动是否有部署风险:
            1. 是否修改了环境变量配置
            2. 是否修改了数据库 schema
            3. 是否有 breaking change
            4. 是否需要发迁移公告

            如果有风险,输出 "BLOCK_DEPLOY: <原因>"
            如果没风险,输出 "DEPLOY_OK"

第三步:AI 部署

      - name: Deploy with Claude
        if: success()
        uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          prompt: |
            执行部署:
            1. 运行 vercel --prod --yes
            2. 等待部署完成,获取 URL
            3. curl 测试首页是否 200
            4. curl 测试 /api/health 是否返回 ok
            5. 如果验证失败,运行 vercel rollback
            6. 输出部署结果
          allowed_tools: "Bash"

第四步:自动回滚

      - name: Rollback on failure
        if: failure()
        run: |
          # 获取上一个稳定部署
          PREV=$(vercel ls --yes | head -5 | tail -1 | awk '{print $1}')
          echo "Rolling back to $PREV"
          vercel promote $PREV --yes

      - name: Notify
        if: always()
        uses: slackapi/slack-github-action@v1
        with:
          slack-message: |
            ${{ job.status == 'success' && '✅' || '❌' }} 部署 ${{ job.status }}
            仓库: ${{ github.repository }}
            提交: ${{ github.event.head_commit.message }}

安全边界

操作AI 可执行需人工确认
跑测试
构建项目
部署到 preview
部署到 production
回滚
修改环境变量
数据库迁移
删除资源

效果

上线 1 个月后:

指标之前(手动)之后(AI 自动)
部署频率2 次/周5 次/天
部署耗时15 分钟3 分钟
部署失败率10%3%(自动回滚)
人工介入每次5% 的部署

踩坑记录

  1. Claude Code Action 的 allowed_tools——只给 Bash,别给文件编辑权限,否则 AI 可能改代码。
  2. Vercel rollback 需要 production deployment 历史——首次部署没有回滚目标,先手动部署一次。
  3. Claude API 成本——每次部署约 $0.2-0.5(审查 + 部署 + 验证),月费 $30-50。
  4. preview 环境先验证——加一步部署到 preview 验证通过再 promote 到 production。
  5. GitHub Actions 超时——Claude Code 调用有时慢,设置 timeout-minutes: 15