cloud-drive-renamer/.github/workflows
Zain e369349811 test: 添加全面的单元测试、集成测试和性能测试
添加了包括单元测试、集成测试和性能测试在内的全面测试套件,覆盖核心功能如批量重命名、崩溃恢复、冲突检测等。测试文件包括:
1. 单元测试:helpers、rules、storage、retry等核心模块
2. 集成测试:批量执行流程与网络恢复场景
3. 性能测试:100文件处理时间、内存占用等指标
4. E2E测试:扩展加载、批量重命名完整流程

所有测试遵循vitest和playwright规范,确保功能稳定性和性能达标
2025-12-16 15:56:38 +08:00
..
ci.yml test: 添加全面的单元测试、集成测试和性能测试 2025-12-16 15:56:38 +08:00
README.md feat: 初始化项目基础架构和核心功能 2025-12-16 14:43:49 +08:00
release.yml feat: 初始化项目基础架构和核心功能 2025-12-16 14:43:49 +08:00

GitHub Actions 工作流说明

本目录包含项目的 CI/CD 自动化工作流配置。

📋 工作流列表

1. ci.yml - 持续集成 (Continuous Integration)

触发条件:

  • Pull Request 创建或更新
  • 推送到 main 分支

功能:

  • ✅ 运行测试套件(带覆盖率报告)
  • ✅ TypeScript 类型检查
  • ✅ ESLint 代码检查
  • ✅ 验证构建成功

用途:确保所有代码变更通过质量检查,在合并前发现问题。


2. release.yml - 自动发布 (Automated Release)

触发条件:

  • 推送符合 v*.*.* 格式的 Git 标签(如 v0.1.0)

功能:

  • ✅ 运行完整的测试和质量检查
  • ✅ 构建 Chrome 扩展
  • ✅ 打包 ZIP 发布文件
  • ✅ 生成变更日志
  • ✅ 创建 GitHub Release

用途:自动化发布流程,生成可安装的扩展包。


🚀 使用方式

开发流程

# 1. 创建新分支
git checkout -b feature/my-feature

# 2. 提交代码
git add .
git commit -m "feat: add new feature"
git push origin feature/my-feature

# 3. 创建 Pull Request
# → CI 工作流自动运行,验证代码质量

# 4. 合并到 main
# → CI 工作流再次运行,确保 main 分支健康

发布新版本

# 1. 更新版本号
npm version patch  # 或 minor、major

# 2. 推送标签
git push origin main
git push origin --tags

# 3. 自动发布
# → Release 工作流自动运行
# → 生成 GitHub Release
# → 附加可安装的 ZIP 文件

📊 工作流状态

查看工作流执行状态:

  • 访问仓库的 Actions 标签页
  • 查看最近的工作流运行记录
  • 点击具体运行查看详细日志

🔧 配置说明

Node.js 版本

所有工作流使用 Node.js 20(LTS 版本)

如需更改,修改各工作流文件中的:

env:
  NODE_VERSION: '20'

缓存策略

启用了 npm 缓存以加速构建:

- uses: actions/setup-node@v4
  with:
    cache: 'npm'

并发控制

CI 工作流启用了并发控制,自动取消旧的运行:

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

🛠️ 故障排查

CI 失败

  1. 查看日志:点击失败的工作流查看详细错误
  2. 本地重现:按照相同步骤本地执行
    npm ci
    npm run test:coverage
    npm run typecheck
    npm run lint
    npm run build
    
  3. 修复问题:根据错误信息修复代码
  4. 重新推送:推送修复后会自动重新运行

Release 失败

  1. 检查标签格式:必须是 v*.*.* 格式(如 v0.1.0)
  2. 检查权限:确保 GitHub Token 有 contents: write 权限
  3. 查看日志:检查构建、测试或打包步骤是否失败

📝 最佳实践

  1. 频繁推送:小步快跑,每次提交都经过 CI 验证
  2. 遵循语义化版本:使用 npm version 管理版本号
  3. 编写测试:提高测试覆盖率,保证代码质量
  4. 及时修复:CI 失败立即修复,不要累积问题

🔗 相关资源