# ccb_build **Repository Path**: test-zwl/ccb_build ## Basic Information - **Project Name**: ccb_build - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-29 - **Last Updated**: 2026-07-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 工程构建调度器 ## 功能 自动调度多个 EulerMaker 工程的构建:监控所有工程状态,当活跃构建数低于并发限制时自动触发下一个待构建工程,构建完成后进入下一轮。 ## 流程 ``` 检查所有工程状态(API 查询) ↓ 活跃数 < 并发限制? ├─ 是 → 触发下一个待构建工程 → 继续监控 └─ 否 → 等待 → 再查... ↓ 全部工程完成 → 下一轮循环 ``` ## 用法 ```bash # 默认:读取同目录 config.json,1 并发,5 分钟轮询 python3 ccb_build_sequential.py # 指定轮询间隔(30 分钟) python3 ccb_build_sequential.py -i 1800 # 允许同时 2 个工程并行构建 python3 ccb_build_sequential.py -i 1800 -c 2 # 指定配置文件 python3 ccb_build_sequential.py --config /path/to/config.json # 单轮模式(所有工程跑完一轮后退出) python3 ccb_build_sequential.py --once # 只看计划,不实际触发 python3 ccb_build_sequential.py --dry-run ``` ## 参数 | 参数 | 默认值 | 说明 | |------|--------|------| | `--config` | `./config.json` | 工程列表配置文件路径 | | `-c, --concurrency` | `1` | 最大并发构建数 | | `-i, --interval` | `300` | 轮询间隔(秒) | | `--retry-wait` | `21600` | 触发失败后重试等待(秒,默认 6h) | | `--once` | - | 单轮模式 | | `--dry-run` | - | 只打印计划 | ## 配置文件 `config.json`,与脚本同目录: ```json { "projects": [ "openEuler-24.03-LTS-SP4-epol:loongarch", "openEuler-24.03-LTS-SP4-everything:loongarch", "openEuler-24.03-LTS-Next-everything:loongarch", "openEuler-24.03-LTS-Next-epol:loongarch", "openEuler-master-everything:loongarch", "openEuler-master-epol:loongarch" ] } ``` 增删工程直接改这个文件,不用动代码。 ## 状态输出 每轮轮询会显示所有工程的完整状态: ``` 工程 活跃 状态 -------------------------------------------------- ---- ---- openEuler-24.03-LTS-SP4-epol:loongarch 142 等待:63 构建中:79 成功:1121 失败:1 ⬅️ openEuler-master-everything:loongarch 259 等待:195 构建中:64 成功:3415 失败:47 依赖未闭环:3 ⬅️ openEuler-master-epol:loongarch 0 成功:683 失败:726 内存溢出:2 ``` 支持的状态:等待、构建中、签名、成功、失败、依赖未闭环、架构不支持、中断、未知、依赖环中构建成功、依赖环中构建失败、异常、内存溢出。 ## 依赖 - Python 3.6+ - `requests`(脚本自动安装) - `ccb` 命令行工具 - 网络访问 EulerMaker API ## 对比原方案 | | `ccb_build_loop.sh` + `monitor_eulermaker.py` | 本脚本 | |---|---|---| | 触发后等待 | 固定 24h | 实时监听,构建完立刻触发下一个 | | 并发控制 | 无 | 支持 `-c` 参数 | | 状态检测 | 需手动运行 monitor | 集成在调度循环中 | | 配置方式 | 改代码 | 外部 config.json |