CI/CD 流程是现代软件工程的基石,而 WorkBuddy 可以作为 CI/CD 管道中的智能节点——在代码提交时自动审查、在构建失败时智能诊断、在部署前生成变更说明、在上线后监控异常。本文将详解 WorkBuddy 与 GitHub Actions、Jenkins 等 CI/CD 平台的集成方式,以及如何构建 AI 增强的自动化流水线。
在 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 }}
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 将 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 }}"
}'
// 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
'''
}
}
}
}
WorkBuddy 也提供了 Jenkins 插件,在 Jenkins 管理界面中安装后,可直接在 Pipeline 中使用 DSL:
stage('AI Review') {
steps {
workBuddyReview(
skill: 'code-reviewer',
model: 'deepseek-v3',
failOnSeverity: 'critical',
publishReport: true
)
}
}
在 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 (需人工确认)
continue-on-error: true