26aa13b5a4
ci/woodpecker/push/woodpecker Pipeline is running
优化内容: - 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%改善)
4.9 KiB
4.9 KiB
CI/CD 修复验证清单
📋 基本信息
- 提交 SHA:
34ce9fb - 分支: release/v1.0.0
- 提交时间: 2026-03-29
- Pipeline URL: https://ci.f.novalon.cn/repos/1/pipeline
- 预期 Pipeline: #30 或更新
✅ 验证清单
1. Git LFS 禁用验证
预期结果: Clone 步骤不应执行 LFS 相关命令
检查步骤:
- 访问 Pipeline 详情页
- 查看 Clone 步骤日志
- 确认日志中不包含以下内容:
git lfs fetchgit lfs checkoutFetching 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 命令
可能原因:
- Woodpecker CI 缓存未清除
- Git 插件版本不支持
lfs: false设置
解决方案:
# 检查 Woodpecker CI 版本
# 查看插件文档确认配置项
# 备选方案:在 Git 服务器端禁用 LFS
# 修改 forgejo-app.ini
如果企业微信通知仍显示变量名
可能原因:
- 环境变量未正确传递
- 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
验证状态: ⏳ 进行中