Files
novalon-website/docs/deployment/CICD_VERIFICATION_CHECKLIST.md
T
张翔 26aa13b5a4
ci/woodpecker/push/woodpecker Pipeline is running
feat: 并行化CI代码质量检查步骤
优化内容:
- Lint、Type Check、Security Scan并行执行
- Unit Tests使用depends_on等待所有检查完成
- 添加npm缓存配置
- 修复shared-mocks.tsx的ESLint错误

预期效果:
- 串行时间: 30s + 40s + 20s = 90s
- 并行时间: max(30s, 40s, 20s) = 40s
- 节省时间: 50s (55.6%改善)
2026-03-29 11:41:30 +08:00

4.9 KiB
Raw Blame History

CI/CD 修复验证清单

📋 基本信息


验证清单

1. Git LFS 禁用验证

预期结果: Clone 步骤不应执行 LFS 相关命令

检查步骤:

  • 访问 Pipeline 详情页
  • 查看 Clone 步骤日志
  • 确认日志中不包含以下内容:
    • git lfs fetch
    • git lfs checkout
    • Fetching reference refs/heads/release/v1.0.0

预期日志示例:

+ git init --object-format sha1 -b release/v1.0.0
+ git config --global --replace-all safe.directory /woodpecker/src
+ git fetch --no-tags --depth=1 origin +34ce9fb:
+ git reset --hard -q 34ce9fb
+ git submodule update --init --recursive --depth=1 --recommend-shallow

注意: 不应出现 git lfs 相关命令


2. 企业微信通知验证

预期结果: 通知消息应正确显示环境变量值

检查步骤:

  • 检查企业微信群聊是否收到通知
  • 验证通知内容包含实际值:
    • 分支: release/v1.0.0(而非 ${BRANCH}
    • 提交: 34ce9fb(而非 ${COMMIT}
    • 作者: 实际作者名(而非 ${AUTHOR}
    • 提交信息: 实际提交信息
    • Pipeline编号: 实际编号
    • 时间: 实际时间戳

预期通知格式:

## 🚀 Novalon Website 部署通知

> **构建状态**: 成功

**项目信息**
> 分支: `release/v1.0.0`
> 提交: `34ce9fb`
> 作者: zhangxiang

**提交信息**
> fix: 修复CI/CD流程问题并建立监控机制

**操作**
> [查看构建详情](https://ci.f.novalon.cn/repos/1/pipeline/30)

---
> 时间: 2026-03-29 08:XX:XX
> Pipeline #30

错误示例(不应出现):

> 分支: `${BRANCH}`
> 提交: `${COMMIT}`
> 作者: ${AUTHOR}

3. 部署验证

预期结果: 部署成功,健康检查通过

检查步骤:

  • 查看 deploy-production 步骤日志
  • 确认以下步骤成功:
    • Registry login
    • Image pull
    • Rolling update
    • Database migration
    • Health check (30次检查)
  • 确认未触发回滚机制

预期日志示例:

=== Step 7: Health check ===
Waiting for service to be ready... (1/30)
Waiting for service to be ready... (2/30)
...
✅ Health check passed!

错误示例(不应出现):

❌ Health check failed, rolling back...

4. 完整流程验证

预期结果: 所有步骤按预期执行

检查步骤:

  • lint - 通过
  • type-check - 通过
  • security-scan - 允许失败
  • unit-tests - 通过
  • e2e-standard - 通过
  • e2e-deep - 通过
  • e2e-performance - 通过
  • e2e-accessibility - 通过
  • e2e-visual - 通过
  • build-image - 通过
  • deploy-production - 通过
  • archive-to-main - 通过
  • notify-wechat-success - 通过

📊 验证结果记录

Pipeline 执行情况

步骤 状态 备注
Clone 待验证 重点验证LFS是否禁用
lint 待验证
type-check 待验证
security-scan 待验证 允许失败
unit-tests 待验证
e2e-standard 待验证
e2e-deep 待验证
e2e-performance 待验证
e2e-accessibility 待验证
e2e-visual 待验证
build-image 待验证
deploy-production 待验证 重点验证健康检查
archive-to-main 待验证
notify-wechat 待验证 重点验证变量展开

关键问题验证

问题 修复方案 验证状态
Git LFS 执行失败 添加 lfs: false 待验证
企业微信通知变量丢失 修正环境变量展开格式 待验证

🔍 问题排查

如果 Clone 步骤仍显示 LFS 命令

可能原因:

  1. Woodpecker CI 缓存未清除
  2. Git 插件版本不支持 lfs: false 设置

解决方案:

# 检查 Woodpecker CI 版本
# 查看插件文档确认配置项

# 备选方案:在 Git 服务器端禁用 LFS
# 修改 forgejo-app.ini

如果企业微信通知仍显示变量名

可能原因:

  1. 环境变量未正确传递
  2. Shell 变量展开时机问题

解决方案:

# 本地测试
export WECHAT_WEBHOOK='your_webhook_url'
export CI_COMMIT_BRANCH='test-branch'
export CI_COMMIT_SHA='test123'
export CI_COMMIT_MESSAGE='test message'
export CI_COMMIT_AUTHOR='test-author'
export CI_PIPELINE_NUMBER='999'
export CI_REPO_ID='1'

./scripts/test-wechat-notify.sh

验证完成标准

  • Git LFS 相关命令不再出现
  • 企业微信通知正确显示所有变量值
  • 部署成功,健康检查通过
  • 所有测试步骤通过
  • 企业微信群聊收到正确格式的通知

验证人员: 张翔
验证日期: 2026-03-29
验证状态: 进行中