# cocos auto build **Repository Path**: lxd_sun_admin/cocos-auto-build ## Basic Information - **Project Name**: cocos auto build - **Description**: cocos 自动打包 - **Primary Language**: Groovy - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2025-12-27 - **Last Updated**: 2025-12-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 灵活的平台处理系统 这是一个用于自动构建不同平台游戏项目的灵活平台处理系统。该系统支持多种平台,包括原生平台(Android、iOS)、Web平台和小游戏平台。 ## 系统架构 系统由以下几个主要部分组成: 1. **平台配置**:在`project.json`中定义平台特定配置和平台类型 2. **平台处理**:使用`process-platform.js`处理不同平台的构建结果 3. **阶段处理**:使用`process-stage.js`进行平台处理后的额外处理 4. **构建脚本**:使用`build.js`集成平台处理和阶段处理 5. **CI/CD集成**:通过`Jenkinsfile`集成到CI/CD流程 ## 目录结构 ``` . ├── build.js # 主构建脚本 ├── process-platform.js # 平台处理脚本 ├── process-stage.js # 阶段处理脚本 ├── project.json # 项目配置文件 ├── Jenkinsfile # Jenkins CI/CD配置 ├── platforms/ # 平台处理脚本目录 │ ├── android.js # Android平台处理脚本 │ ├── web-mobile.js # Web移动平台处理脚本 │ ├── wechatgame.js # 微信小游戏平台处理脚本 │ ├── native.js # 原生平台类型处理脚本 │ ├── web.js # Web平台类型处理脚本 │ ├── minigame.js # 小游戏平台类型处理脚本 │ └── common.js # 通用平台处理脚本 └── stages/ # 阶段处理脚本目录 ├── android.js # Android平台阶段处理脚本 ├── native.js # 原生平台类型阶段处理脚本 ├── common.js # 通用阶段处理脚本 └── README.md # 阶段处理系统说明 ``` ## 工作流程 1. **配置平台**:在`project.json`中配置平台特定参数和平台类型 2. **构建项目**:使用`build.js`构建项目 3. **平台处理**:`process-platform.js`处理构建结果 4. **阶段处理**:`process-stage.js`进行额外处理 5. **归档结果**:将处理后的结果归档 ## 平台处理系统 平台处理系统会按照以下优先级加载并执行处理脚本: 1. 特定平台脚本(如`android.js`、`web-mobile.js`等) 2. 平台类型脚本(如`native.js`、`web.js`、`minigame.js`等) 3. 通用脚本(`common.js`) ### 使用方法 ```bash node process-platform.js --platform <平台名称> --build-dir <构建目录> --env <构建环境> --config <配置文件> ``` ## 阶段处理系统 阶段处理系统是在平台处理之后执行的一个额外处理层,用于对不同平台的构建结果进行进一步处理。 ### 阶段处理目录结构 ``` stages/ ├── common.js # 通用阶段处理脚本 ├── android.js # Android平台特定阶段处理脚本 ├── native.js # 原生平台类型阶段处理脚本 ├── web.js # Web平台类型阶段处理脚本 ├── minigame.js # 小游戏平台类型阶段处理脚本 └── [platform].js # 其他特定平台的阶段处理脚本 ``` ### 阶段处理优先级 阶段处理系统会按照以下优先级加载并执行处理脚本: 1. 特定平台脚本(如 `android.js`、`web-mobile.js`、`wechatgame.js` 等) 2. 平台类型脚本(如 `native.js`、`web.js`、`minigame.js` 等) 3. 通用脚本(`common.js`) 如果找不到特定平台的处理脚本,会尝试使用对应平台类型的脚本。如果平台类型脚本也不存在,则会使用通用脚本。 ### 阶段处理使用方法 #### 命令行使用 ```bash node process-stage.js --platform <平台名称> --output-dir <输出目录> --env <构建环境> --config <配置文件> ``` 参数说明: - `--platform`, `-p`: 要处理的平台(必需) - `--output-dir`, `-o`: 输出目录路径(必需) - `--env`, `-e`: 构建环境(debug/release),默认为 release - `--config`, `-c`: 配置文件路径,默认为 project.json #### 在构建系统中使用 阶段处理系统已集成到构建流程中,会在平台处理之后自动执行。处理结果会输出到 `stage-result.json` 文件中。 ### 创建新的阶段处理脚本 要创建新的阶段处理脚本,只需在 `stages` 目录中创建一个与平台名称相同的 JS 文件,并导出一个处理函数: ```javascript /** * 平台阶段处理函数 * @param {Object} options 处理选项 * @param {String} options.outputDir 输出目录 * @param {String} options.platform 平台名称 * @param {String} options.platformType 平台类型 * @param {String} options.buildEnv 构建环境 (debug/release) * @param {Object} options.config 平台配置 * @returns {Object} 处理结果 */ module.exports = async function(options) { // 实现特定平台的处理逻辑 return { success: true, stageOutputDir: '处理后的输出目录', message: '处理成功消息' }; }; ``` ### 阶段处理结果格式 阶段处理脚本应返回一个包含以下字段的对象: - `success`: 布尔值,表示处理是否成功 - `stageOutputDir`: 字符串,处理后的输出目录路径 - `message`: 字符串,处理结果消息 如果处理失败,可以返回: ```javascript return { success: false, message: '失败原因' }; ``` ## 扩展支持 要支持新的平台,只需: 1. 在`project.json`的`platform_types`中添加新平台的类型 2. 在`platforms`目录中创建对应的平台处理脚本 3. 在`stages`目录中创建对应的阶段处理脚本 ## 测试 使用以下命令测试阶段处理系统: ```bash node test-stage.js ``` ## 注意事项 - 系统不依赖任何第三方库,使用Node.js原生模块实现 - 所有脚本都支持命令行参数,可以单独使用 - 系统设计灵活,可以通过配置文件和脚本扩展支持更多平台