1
0
mirror of https://gitcode.com/github-mirrors/react-native-update-cli.git synced 2025-09-16 01:41:37 +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

13 KiB
Raw Permalink Blame History

核心模块增强工作流

这个文档详细介绍了为React Native Update CLI核心模块设计的增强工作流包括app-modulebundle-modulepackage-moduleuser-moduleversion-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)

用途: 完整的应用创建和初始化流程

功能特性:

  • 参数验证和格式检查
  • 应用存在性检查和冲突处理
  • 应用创建和配置
  • 自动选择新创建的应用
  • 完整性验证和健康检查

工作流步骤:

  1. 参数验证: 检查应用名称、平台、下载URL格式
  2. 存在性检查: 验证应用是否已存在,支持强制覆盖
  3. 应用创建: 执行应用创建操作
  4. 基本配置: 设置更新策略、安全参数、版本控制
  5. 应用选择: 自动选择新创建的应用
  6. 设置验证: 验证应用配置的完整性和可用性

使用示例:

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. 自动优化: 执行应用配置优化和清理

使用示例:

await moduleManager.executeWorkflow('multi-platform-app-management', {
  args: [],
  options: {
    includeInactive: true,    // 包含非活跃应用
    autoOptimize: true        // 自动优化配置
  }
});

适用场景:

  • 应用生态管理
  • 定期健康检查
  • 批量优化操作

📦 Bundle模块工作流

1. 智能打包工作流 (intelligent-bundle)

用途: 自动优化的多平台智能构建

功能特性:

  • 🖥️ 构建环境自动检测
  • 📂 项目结构智能分析
  • ⚙️ 自动优化配置
  • 🏗️ 多平台并行构建
  • 🔍 构建质量检查

工作流步骤:

  1. 环境检测: 检查Node.js版本、内存、平台兼容性
  2. 项目分析: 分析项目类型、依赖、预估大小
  3. 优化设置: 根据项目特征自动配置优化选项
  4. 多平台构建: 并行构建指定平台或所有平台
  5. 质量检查: 检查构建质量、包大小、构建时间

使用示例:

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. 验证测试: 验证差异包的完整性和可用性

使用示例:

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. 报告生成: 生成详细的处理报告和统计信息

使用示例:

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. 发布总结: 生成完整的发布报告和统计信息

使用示例:

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提供了

  1. 完整的应用生命周期管理 - 从创建到发布的全流程覆盖
  2. 智能化构建和优化 - 自动环境检测和性能优化
  3. 高效的增量更新 - 减少更新包大小,提升用户体验
  4. 批量处理能力 - 提高大规模应用管理效率
  5. 规范化发布流程 - 确保发布质量和一致性

每个工作流都经过精心设计,包含详细的步骤、错误处理、进度反馈和结果验证,为开发者提供了强大而可靠的自动化工具。