1
0
mirror of https://gitcode.com/github-mirrors/react-native-update-cli.git synced 2025-09-16 09:41:38 +08:00
Code Issues Packages Projects Releases Wiki Activity GitHub Gitee
Files
react-native-update-cli/example/ENHANCED_WORKFLOWS.md
波仔糕 e98bcf504f cli modular refactor (#16)
* add logic to support SENTRY_PROPERTIES parameter

* remove update.json and meta.json files in ppk

* udpapte

* refactor modles

* update

* add package-module file

* update

* update readme file

* modifu cli.json file

* fix command issues

* improve version workflow logic

* udpate

* update

* update

* update

* udpate

* udpate

* add example

* update readme file

* udpate version

* change logic to use pushy command uniformly
2025-07-24 11:46:20 +08:00

471 lines
13 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 核心模块增强工作流
这个文档详细介绍了为React Native Update CLI核心模块设计的增强工作流包括`app-module``bundle-module``package-module``user-module``version-module`的高级工作流功能。
## 📋 目录
- [App模块工作流](#app模块工作流)
- [Bundle模块工作流](#bundle模块工作流)
- [Package模块工作流](#package模块工作流)
- [User模块工作流](#user模块工作流)
- [Version模块工作流](#version模块工作流)
- [工作流使用示例](#工作流使用示例)
- [最佳实践](#最佳实践)
## 🚀 快速开始
```bash
# 运行所有增强工作流演示
npx ts-node example/scripts/enhanced-workflow-demo.ts
# 交互式执行特定工作流
npx ts-node example/scripts/enhanced-workflow-demo.ts interactive [工作流名称] [参数...]
# 示例:应用初始化
npx ts-node example/scripts/enhanced-workflow-demo.ts interactive app-initialization --name MyApp --platform ios
# 示例:智能打包
npx ts-node example/scripts/enhanced-workflow-demo.ts interactive intelligent-bundle --platform android --optimize true
# 示例:版本发布
npx ts-node example/scripts/enhanced-workflow-demo.ts interactive version-release-management --name v1.0.0 --platform ios --dryRun true
```
---
## 📱 App模块工作流
### 1. 应用初始化工作流 (`app-initialization`)
**用途**: 完整的应用创建和初始化流程
**功能特性**:
- ✅ 参数验证和格式检查
- ✅ 应用存在性检查和冲突处理
- ✅ 应用创建和配置
- ✅ 自动选择新创建的应用
- ✅ 完整性验证和健康检查
**工作流步骤**:
1. **参数验证**: 检查应用名称、平台、下载URL格式
2. **存在性检查**: 验证应用是否已存在,支持强制覆盖
3. **应用创建**: 执行应用创建操作
4. **基本配置**: 设置更新策略、安全参数、版本控制
5. **应用选择**: 自动选择新创建的应用
6. **设置验证**: 验证应用配置的完整性和可用性
**使用示例**:
```typescript
await moduleManager.executeWorkflow('app-initialization', {
args: [],
options: {
name: 'MyAwesomeApp', // 应用名称 (必需)
platform: 'ios', // 平台 (必需)
downloadUrl: 'https://...', // 下载URL (可选)
force: false // 强制覆盖 (可选)
}
});
```
**适用场景**:
- 新项目应用创建
- 多环境应用设置
- 自动化部署脚本
### 2. 多平台应用管理工作流 (`multi-platform-app-management`)
**用途**: 跨平台应用统一管理和优化
**功能特性**:
- 🔍 全平台应用扫描
- 📊 应用状态分析和统计
- ⚡ 自动优化建议和执行
- 📈 应用健康度评估
**工作流步骤**:
1. **平台扫描**: 扫描iOS、Android、Harmony平台的所有应用
2. **状态分析**: 分析应用活跃度、版本分布、平台分布
3. **问题识别**: 识别非活跃应用、配置问题
4. **自动优化**: 执行应用配置优化和清理
**使用示例**:
```typescript
await moduleManager.executeWorkflow('multi-platform-app-management', {
args: [],
options: {
includeInactive: true, // 包含非活跃应用
autoOptimize: true // 自动优化配置
}
});
```
**适用场景**:
- 应用生态管理
- 定期健康检查
- 批量优化操作
---
## 📦 Bundle模块工作流
### 1. 智能打包工作流 (`intelligent-bundle`)
**用途**: 自动优化的多平台智能构建
**功能特性**:
- 🖥️ 构建环境自动检测
- 📂 项目结构智能分析
- ⚙️ 自动优化配置
- 🏗️ 多平台并行构建
- 🔍 构建质量检查
**工作流步骤**:
1. **环境检测**: 检查Node.js版本、内存、平台兼容性
2. **项目分析**: 分析项目类型、依赖、预估大小
3. **优化设置**: 根据项目特征自动配置优化选项
4. **多平台构建**: 并行构建指定平台或所有平台
5. **质量检查**: 检查构建质量、包大小、构建时间
**使用示例**:
```typescript
await moduleManager.executeWorkflow('intelligent-bundle', {
args: [],
options: {
platform: 'ios', // 目标平台 (可选,不指定则构建所有)
dev: false, // 开发模式
sourcemap: true, // 生成源码映射
optimize: true // 启用自动优化
}
});
```
**适用场景**:
- 自动化CI/CD构建
- 多平台发布准备
- 性能优化构建
### 2. 增量构建工作流 (`incremental-build`)
**用途**: 高效的增量更新包生成
**功能特性**:
- 🔍 自动基准版本检测
- 🏗️ 当前版本构建
- 📥 基准版本下载
- 🔄 智能差异计算
- ✅ 差异包验证
**工作流步骤**:
1. **基准检测**: 自动检测或使用指定的基准版本
2. **当前构建**: 构建当前版本的Bundle
3. **基准下载**: 下载基准版本的Bundle文件
4. **差异生成**: 计算并生成差异包
5. **验证测试**: 验证差异包的完整性和可用性
**使用示例**:
```typescript
await moduleManager.executeWorkflow('incremental-build', {
args: [],
options: {
platform: 'android', // 目标平台 (必需)
baseVersion: 'v1.0.0', // 基准版本 (可选,自动检测)
skipValidation: false // 跳过验证
}
});
```
**适用场景**:
- 热更新包生成
- 减少更新下载大小
- 快速增量发布
---
## 📄 Package模块工作流
### 1. 批量包处理工作流 (`batch-package-processing`)
**用途**: 批量处理多个应用包文件
**功能特性**:
- 🔍 智能文件扫描
- 📊 包信息分析统计
- 🔍 批量内容解析
- 📤 自动上传处理
- 📋 详细处理报告
**工作流步骤**:
1. **文件扫描**: 扫描指定目录的包文件IPA、APK、APP
2. **信息分析**: 分析包大小、平台分布、版本信息
3. **内容解析**: 批量解析包的元信息、权限、资源
4. **批量上传**: 自动上传解析成功的包文件
5. **报告生成**: 生成详细的处理报告和统计信息
**使用示例**:
```typescript
await moduleManager.executeWorkflow('batch-package-processing', {
args: [],
options: {
directory: './packages', // 包文件目录
pattern: '*.{ipa,apk,app}', // 文件匹配模式
skipUpload: false // 跳过上传步骤
}
});
```
**适用场景**:
- 批量包文件处理
- 包文件质量检查
- 自动化包管理
---
## 👤 User模块工作流
> User模块已经在现有代码中包含了完善的工作流
### 1. 认证状态检查工作流 (`auth-check`)
**功能特性**:
- 🔐 会话状态检查
- ✅ 服务端验证
- 👤 用户信息获取
- 🔄 自动登录支持
### 2. 完整登录流程工作流 (`login-flow`)
**功能特性**:
- 🔍 现有会话检查
- 🔐 用户登录执行
- ✅ 登录状态验证
- 📋 流程状态汇总
---
## 🏷️ Version模块工作流
### 1. 版本发布管理工作流 (`version-release-management`)
**用途**: 完整的版本发布生命周期管理
**功能特性**:
- 🔍 发布前全面检查
- ✅ 版本信息验证
- ⚙️ 发布参数配置
- 🚀 发布执行和监控
- 📊 发布后监控分析
- 📋 完整发布报告
**工作流步骤**:
1. **发布前检查**: 验证版本格式、平台支持、构建环境、依赖完整性
2. **版本验证**: 检查版本冲突、规范性、发布类型
3. **发布准备**: 生成发布说明、配置分发参数、设置回滚策略
4. **执行发布**: 上传版本包、更新信息、配置分发、激活版本
5. **发布监控**: 监控下载成功率、安装成功率、崩溃率等关键指标
6. **发布总结**: 生成完整的发布报告和统计信息
**使用示例**:
```typescript
await moduleManager.executeWorkflow('version-release-management', {
args: [],
options: {
name: 'v2.1.0', // 版本名称 (必需)
description: 'Major update', // 版本描述
platform: 'ios', // 目标平台 (必需)
rollout: 50, // 发布覆盖率
packageVersion: '2.1.0', // 包版本号
dryRun: false, // 模拟发布
force: false // 强制发布
}
});
```
**适用场景**:
- 正式版本发布
- 灰度发布管理
- 发布质量控制
---
## 🔗 工作流使用示例
### 1. 完整发布流程组合
```typescript
// 完整的应用发布流程
async function completeReleaseFlow() {
// 1. 应用初始化
await moduleManager.executeWorkflow('app-initialization', {
args: [],
options: {
name: 'ProductionApp',
platform: 'ios',
force: true
}
});
// 2. 智能打包
await moduleManager.executeWorkflow('intelligent-bundle', {
args: [],
options: {
platform: 'ios',
dev: false,
optimize: true
}
});
// 3. 版本发布
await moduleManager.executeWorkflow('version-release-management', {
args: [],
options: {
name: 'v1.0.0',
platform: 'ios',
rollout: 100
}
});
}
```
### 2. 多平台批量构建
```typescript
async function multiPlatformBuild() {
const platforms = ['ios', 'android', 'harmony'];
for (const platform of platforms) {
await moduleManager.executeWorkflow('intelligent-bundle', {
args: [],
options: {
platform,
dev: false,
optimize: true
}
});
}
}
```
### 3. 增量更新流程
```typescript
async function incrementalUpdateFlow() {
// 1. 生成增量包
const buildResult = await moduleManager.executeWorkflow('incremental-build', {
args: [],
options: {
platform: 'android',
baseVersion: 'v1.0.0'
}
});
// 2. 发布增量更新
if (buildResult.success) {
await moduleManager.executeWorkflow('version-release-management', {
args: [],
options: {
name: 'v1.0.1',
platform: 'android',
rollout: 20 // 小范围发布
}
});
}
}
```
---
## 📋 最佳实践
### 1. 工作流选择指南
| 场景 | 推荐工作流 | 配置建议 |
|------|------------|----------|
| 新应用创建 | `app-initialization` | 启用force参数避免冲突 |
| 生产发布 | `intelligent-bundle` + `version-release-management` | 关闭dev模式启用优化 |
| 热更新 | `incremental-build` | 指定合适的基准版本 |
| 批量管理 | `batch-package-processing` | 定期执行包文件清理 |
| 灰度发布 | `version-release-management` | 设置合适的rollout比例 |
### 2. 错误处理策略
```typescript
async function robustWorkflowExecution() {
try {
const result = await moduleManager.executeWorkflow('app-initialization', {
args: [],
options: { name: 'MyApp', platform: 'ios' }
});
if (!result.success) {
console.error('工作流执行失败:', result.error);
// 执行回滚或重试逻辑
}
} catch (error) {
console.error('工作流异常:', error);
// 异常处理逻辑
}
}
```
### 3. 工作流监控
```typescript
// 工作流执行监控
const workflowMonitor = {
async executeWithMonitoring(workflowName: string, context: any) {
const startTime = Date.now();
console.log(`开始执行工作流: ${workflowName}`);
try {
const result = await moduleManager.executeWorkflow(workflowName, context);
const duration = Date.now() - startTime;
console.log(`工作流执行完成: ${workflowName}, 耗时: ${duration}ms`);
return result;
} catch (error) {
const duration = Date.now() - startTime;
console.error(`工作流执行失败: ${workflowName}, 耗时: ${duration}ms`, error);
throw error;
}
}
};
```
### 4. 配置管理
```typescript
// 工作流配置管理
const workflowConfigs = {
development: {
'intelligent-bundle': { dev: true, optimize: false },
'version-release-management': { dryRun: true, rollout: 10 }
},
production: {
'intelligent-bundle': { dev: false, optimize: true },
'version-release-management': { dryRun: false, rollout: 100 }
}
};
async function executeWithConfig(workflowName: string, environment: string) {
const config = workflowConfigs[environment]?.[workflowName] || {};
return await moduleManager.executeWorkflow(workflowName, {
args: [],
options: config
});
}
```
---
## 🎯 总结
这些增强的核心工作流为React Native Update CLI提供了
1. **完整的应用生命周期管理** - 从创建到发布的全流程覆盖
2. **智能化构建和优化** - 自动环境检测和性能优化
3. **高效的增量更新** - 减少更新包大小,提升用户体验
4. **批量处理能力** - 提高大规模应用管理效率
5. **规范化发布流程** - 确保发布质量和一致性
每个工作流都经过精心设计,包含详细的步骤、错误处理、进度反馈和结果验证,为开发者提供了强大而可靠的自动化工具。