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%改善)
218 lines
4.9 KiB
Markdown
218 lines
4.9 KiB
Markdown
# 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 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` 设置
|
||
|
||
**解决方案**:
|
||
```bash
|
||
# 检查 Woodpecker CI 版本
|
||
# 查看插件文档确认配置项
|
||
|
||
# 备选方案:在 Git 服务器端禁用 LFS
|
||
# 修改 forgejo-app.ini
|
||
```
|
||
|
||
### 如果企业微信通知仍显示变量名
|
||
|
||
**可能原因**:
|
||
1. 环境变量未正确传递
|
||
2. Shell 变量展开时机问题
|
||
|
||
**解决方案**:
|
||
```bash
|
||
# 本地测试
|
||
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
|
||
**验证状态**: ⏳ 进行中
|