mirror of
https://gitcode.com/github-mirrors/react-native-update-cli.git
synced 2025-09-16 01:41:37 +08:00

* 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
13 KiB
13 KiB
核心模块增强工作流
这个文档详细介绍了为React Native Update CLI核心模块设计的增强工作流,包括app-module
、bundle-module
、package-module
、user-module
、version-module
的高级工作流功能。
📋 目录
🚀 快速开始
# 运行所有增强工作流演示
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
)
用途: 完整的应用创建和初始化流程
功能特性:
- ✅ 参数验证和格式检查
- ✅ 应用存在性检查和冲突处理
- ✅ 应用创建和配置
- ✅ 自动选择新创建的应用
- ✅ 完整性验证和健康检查
工作流步骤:
- 参数验证: 检查应用名称、平台、下载URL格式
- 存在性检查: 验证应用是否已存在,支持强制覆盖
- 应用创建: 执行应用创建操作
- 基本配置: 设置更新策略、安全参数、版本控制
- 应用选择: 自动选择新创建的应用
- 设置验证: 验证应用配置的完整性和可用性
使用示例:
await moduleManager.executeWorkflow('app-initialization', {
args: [],
options: {
name: 'MyAwesomeApp', // 应用名称 (必需)
platform: 'ios', // 平台 (必需)
downloadUrl: 'https://...', // 下载URL (可选)
force: false // 强制覆盖 (可选)
}
});
适用场景:
- 新项目应用创建
- 多环境应用设置
- 自动化部署脚本
2. 多平台应用管理工作流 (multi-platform-app-management
)
用途: 跨平台应用统一管理和优化
功能特性:
- 🔍 全平台应用扫描
- 📊 应用状态分析和统计
- ⚡ 自动优化建议和执行
- 📈 应用健康度评估
工作流步骤:
- 平台扫描: 扫描iOS、Android、Harmony平台的所有应用
- 状态分析: 分析应用活跃度、版本分布、平台分布
- 问题识别: 识别非活跃应用、配置问题
- 自动优化: 执行应用配置优化和清理
使用示例:
await moduleManager.executeWorkflow('multi-platform-app-management', {
args: [],
options: {
includeInactive: true, // 包含非活跃应用
autoOptimize: true // 自动优化配置
}
});
适用场景:
- 应用生态管理
- 定期健康检查
- 批量优化操作
📦 Bundle模块工作流
1. 智能打包工作流 (intelligent-bundle
)
用途: 自动优化的多平台智能构建
功能特性:
- 🖥️ 构建环境自动检测
- 📂 项目结构智能分析
- ⚙️ 自动优化配置
- 🏗️ 多平台并行构建
- 🔍 构建质量检查
工作流步骤:
- 环境检测: 检查Node.js版本、内存、平台兼容性
- 项目分析: 分析项目类型、依赖、预估大小
- 优化设置: 根据项目特征自动配置优化选项
- 多平台构建: 并行构建指定平台或所有平台
- 质量检查: 检查构建质量、包大小、构建时间
使用示例:
await moduleManager.executeWorkflow('intelligent-bundle', {
args: [],
options: {
platform: 'ios', // 目标平台 (可选,不指定则构建所有)
dev: false, // 开发模式
sourcemap: true, // 生成源码映射
optimize: true // 启用自动优化
}
});
适用场景:
- 自动化CI/CD构建
- 多平台发布准备
- 性能优化构建
2. 增量构建工作流 (incremental-build
)
用途: 高效的增量更新包生成
功能特性:
- 🔍 自动基准版本检测
- 🏗️ 当前版本构建
- 📥 基准版本下载
- 🔄 智能差异计算
- ✅ 差异包验证
工作流步骤:
- 基准检测: 自动检测或使用指定的基准版本
- 当前构建: 构建当前版本的Bundle
- 基准下载: 下载基准版本的Bundle文件
- 差异生成: 计算并生成差异包
- 验证测试: 验证差异包的完整性和可用性
使用示例:
await moduleManager.executeWorkflow('incremental-build', {
args: [],
options: {
platform: 'android', // 目标平台 (必需)
baseVersion: 'v1.0.0', // 基准版本 (可选,自动检测)
skipValidation: false // 跳过验证
}
});
适用场景:
- 热更新包生成
- 减少更新下载大小
- 快速增量发布
📄 Package模块工作流
1. 批量包处理工作流 (batch-package-processing
)
用途: 批量处理多个应用包文件
功能特性:
- 🔍 智能文件扫描
- 📊 包信息分析统计
- 🔍 批量内容解析
- 📤 自动上传处理
- 📋 详细处理报告
工作流步骤:
- 文件扫描: 扫描指定目录的包文件(IPA、APK、APP)
- 信息分析: 分析包大小、平台分布、版本信息
- 内容解析: 批量解析包的元信息、权限、资源
- 批量上传: 自动上传解析成功的包文件
- 报告生成: 生成详细的处理报告和统计信息
使用示例:
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
)
用途: 完整的版本发布生命周期管理
功能特性:
- 🔍 发布前全面检查
- ✅ 版本信息验证
- ⚙️ 发布参数配置
- 🚀 发布执行和监控
- 📊 发布后监控分析
- 📋 完整发布报告
工作流步骤:
- 发布前检查: 验证版本格式、平台支持、构建环境、依赖完整性
- 版本验证: 检查版本冲突、规范性、发布类型
- 发布准备: 生成发布说明、配置分发参数、设置回滚策略
- 执行发布: 上传版本包、更新信息、配置分发、激活版本
- 发布监控: 监控下载成功率、安装成功率、崩溃率等关键指标
- 发布总结: 生成完整的发布报告和统计信息
使用示例:
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. 完整发布流程组合
// 完整的应用发布流程
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. 多平台批量构建
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. 增量更新流程
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. 错误处理策略
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. 工作流监控
// 工作流执行监控
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. 配置管理
// 工作流配置管理
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提供了:
- 完整的应用生命周期管理 - 从创建到发布的全流程覆盖
- 智能化构建和优化 - 自动环境检测和性能优化
- 高效的增量更新 - 减少更新包大小,提升用户体验
- 批量处理能力 - 提高大规模应用管理效率
- 规范化发布流程 - 确保发布质量和一致性
每个工作流都经过精心设计,包含详细的步骤、错误处理、进度反馈和结果验证,为开发者提供了强大而可靠的自动化工具。