E4 · 进阶深入

WorkBuddy + CI/CD:集成持续集成/部署流程

2026-07-27

CI/CD 流程是现代软件工程的基石,而 WorkBuddy 可以作为 CI/CD 管道中的智能节点——在代码提交时自动审查、在构建失败时智能诊断、在部署前生成变更说明、在上线后监控异常。本文将详解 WorkBuddy 与 GitHub Actions、Jenkins 等 CI/CD 平台的集成方式,以及如何构建 AI 增强的自动化流水线。

🐙GitHub Actions 集成

方式一:CLI 模式(推荐)

在 GitHub Actions 中通过 WorkBuddy CLI 调用,最灵活可控:

# .github/workflows/ai-review.yml
name: AI Code Review

on:
  pull_request:
    types: [opened, synchronize]

jobs:
  ai-review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Install WorkBuddy CLI
        run: |
          curl -fsSL https://workbuddy.qq.com/install.sh | sh

      - name: AI Code Review
        env:
          WORKBUDDY_API_KEY: ${{ secrets.WORKBUDDY_API_KEY }}
        run: |
          # 获取 PR diff
          DIFF=$(git diff origin/main...HEAD)

          # 调用 WorkBuddy 进行代码审查
          workbuddy chat \
            --skill code-reviewer \
            --model deepseek-v3 \
            --input "审查以下代码变更:\n${DIFF}" \
            --output review-result.md

          # 将审查结果作为 PR 评论发布
          REVIEW=$(cat review-result.md)
          gh pr comment ${{ github.event.pull_request.number }} \
            --body "$REVIEW"
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

方式二:官方 Action

WorkBuddy 提供了封装好的 GitHub Action:

# .github/workflows/ai-review.yml
jobs:
  ai-review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: WorkBuddy AI Review
        uses: workbuddy/action-review@v1
        with:
          api_key: ${{ secrets.WORKBUDDY_API_KEY }}
          skill: code-reviewer
          model: deepseek-v3
          severity_threshold: medium
          auto_approve: false
          comment_on_pr: true

方式三:Webhook 触发

通过 Webhook 将 CI 事件推送给 WorkBuddy,适合已有复杂流水线的项目:

# .github/workflows/notify-workbuddy.yml
on:
  workflow_run:
    workflows: ["CI"]
    types: [completed]

jobs:
  notify:
    runs-on: ubuntu-latest
    steps:
      - name: Notify WorkBuddy
        run: |
          curl -X POST https://workbuddy.qq.com/api/webhook \
            -H "Authorization: Bearer ${{ secrets.WORKBUDDY_API_KEY }}" \
            -H "Content-Type: application/json" \
            -d '{
              "event": "ci_completed",
              "repository": "${{ github.repository }}",
              "branch": "${{ github.ref }}",
              "status": "${{ github.event.workflow_run.conclusion }}",
              "run_id": "${{ github.event.workflow_run.id }}"
            }'

🔧Jenkins 集成

Pipeline 脚本

// Jenkinsfile
pipeline {
    agent any

    environment {
        WORKBUDDY_API_KEY = credentials('workbuddy-api-key')
    }

    stages {
        stage('Build') {
            steps {
                sh 'npm run build'
            }
        }

        stage('AI Code Review') {
            steps {
                sh '''
                    # 安装 WorkBuddy CLI
                    curl -fsSL https://workbuddy.qq.com/install.sh | sh

                    # 获取变更文件
                    CHANGED_FILES=$(git diff --name-only HEAD~1 HEAD)

                    # AI 审查
                    workbuddy chat \
                      --skill code-reviewer \
                      --input "审查变更文件: ${CHANGED_FILES}" \
                      --output review-result.md
                '''
            }
            post {
                always {
                    archiveArtifacts artifacts: 'review-result.md'
                    publishHTML(target: [
                        allowMissing: false,
                        alwaysLinkToLastBuild: true,
                        reportDir: '.',
                        reportFiles: 'review-result.md',
                        reportName: 'AI Review Report'
                    ])
                }
            }
        }

        stage('Test') {
            steps {
                sh 'npm test'
            }
            post {
                failure {
                    sh '''
                        # 测试失败时,让 WorkBuddy 诊断
                        workbuddy chat \
                          --skill test-diagnostic \
                          --input "测试失败,请分析测试日志并给出修复建议" \
                          --context "$(cat test-results.log)"
                    '''
                }
            }
        }

        stage('Generate Changelog') {
            when {
                branch 'main'
            }
            steps {
                sh '''
                    workbuddy chat \
                      --skill changelog-gen \
                      --input "根据最近的 Git 提交生成变更日志" \
                      --output CHANGELOG.md
                '''
            }
        }
    }
}

Jenkins 插件

WorkBuddy 也提供了 Jenkins 插件,在 Jenkins 管理界面中安装后,可直接在 Pipeline 中使用 DSL:

stage('AI Review') {
    steps {
        workBuddyReview(
            skill: 'code-reviewer',
            model: 'deepseek-v3',
            failOnSeverity: 'critical',
            publishReport: true
        )
    }
}

🧪自动化测试增强

AI 生成测试用例

在 CI 中自动为新增代码补充测试:

# .github/workflows/ai-test-gen.yml
name: AI Test Generation

on:
  pull_request:

jobs:
  generate-tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Find untested code
        run: |
          # 找出覆盖率低于阈值的文件
          npm run test:coverage
          UNTESTED=$(node find-untested.js --threshold 50)

      - name: Generate tests with WorkBuddy
        run: |
          workbuddy chat \
            --skill test-generator \
            --input "为以下未充分测试的文件生成测试用例:${UNTESTED}" \
            --output generated-tests/

      - name: Run generated tests
        run: |
          cp generated-tests/*.test.js src/__tests__/
          npm test

测试失败智能诊断

测试失败时,WorkBuddy 分析日志给出修复建议:

# 在 CI 失败步骤中
- name: Diagnose Test Failures
  if: failure()
  run: |
    workbuddy chat \
      --skill test-diagnostic \
      --input "以下测试失败了,分析根因并给出修复代码" \
      --context "$(cat test-failures.log)" \
      --output diagnosis.md

    # 将诊断结果作为 PR 评论
    gh pr comment $PR_NUMBER --body "$(cat diagnosis.md)"

🚀部署自动化

智能变更日志

# 部署前自动生成变更说明
workbuddy chat \
  --skill changelog-gen \
  --input "对比 v${PREV_VERSION} 和 v${NEW_VERSION} 的变更,生成用户友好的变更日志" \
  --output RELEASE_NOTES.md

部署前安全审查

# 生产部署前的安全检查
- name: Security Review
  run: |
    workbuddy chat \
      --skill security-scanner \
      --input "审查即将部署到生产的代码,重点关注:1.敏感信息泄露 2.SQL注入 3.权限越权" \
      --severity-threshold high \
      --output security-report.md

    # 如果发现高危问题,阻止部署
    if grep -q "CRITICAL" security-report.md; then
      echo "发现高危安全问题,部署已阻止"
      exit 1
    fi

部署后验证

# 部署后自动验证
- name: Post-deploy Verification
  run: |
    workbuddy chat \
      --skill deploy-verifier \
      --input "验证部署是否成功:检查健康端点、核心API可用性、关键页面渲染" \
      --endpoints "https://api.example.com/health,https://app.example.com"

📊完整流水线示例

将以上能力组合,构建 AI 增强的完整 CI/CD 流水线:

PR 提交
  │
  ├─→ AI 代码审查 ──→ 审查评论发布到 PR
  │
  ├─→ 构建 ──→ 失败? → AI 诊断构建错误
  │
  ├─→ 测试 ──→ 失败? → AI 诊断测试失败 + 修复建议
  │         └→ 覆盖率不足? → AI 生成补充测试
  │
  ├─→ 安全审查 ──→ 高危? → 阻止合并
  │
  └─→ 合并到 main
       │
       ├─→ 生成变更日志
       ├─→ 部署到 staging
       ├─→ 部署后验证
       └─→ 部署到 production (需人工确认)

⚠️注意事项

📚 参考资料

💬 你对 WorkBuddy 有什么疑问?或者已经在用了,有什么心得想分享?欢迎在下方留言讨论!