mirror of
https://gitcode.com/github-mirrors/react-native-update-cli.git
synced 2025-10-07 19:15:15 +08:00
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
This commit is contained in:
471
example/ENHANCED_WORKFLOWS.md
Normal file
471
example/ENHANCED_WORKFLOWS.md
Normal file
@@ -0,0 +1,471 @@
|
||||
# 核心模块增强工作流
|
||||
|
||||
这个文档详细介绍了为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. **规范化发布流程** - 确保发布质量和一致性
|
||||
|
||||
每个工作流都经过精心设计,包含详细的步骤、错误处理、进度反馈和结果验证,为开发者提供了强大而可靠的自动化工具。
|
Reference in New Issue
Block a user