-
Notifications
You must be signed in to change notification settings - Fork 123
Description
[任务] 在 Qlean 环境中构建完整 Mega + Orion 集成测试环境(支持 UI 与构建测试)
[任务分值]35 分
[背景描述]
当前系统包含:
- Mega 服务(Server)
- Orion 客户端(构建执行端)
- 依赖的基础设施(数据库、缓存、对象存储等)
- 前端 UI
- 构建执行流程
计划通过 Qlean 隔离环境实现:
- 在 VM 内启动完整 Mega 服务栈
- 编译当前本地代码版本的 Orion 客户端
- 启动客户端并连接 Mega
- 提供一个可真实访问的 UI 环境
- 支持真实构建测试
目标是构建一个可复现、可隔离、可用于回归验证的完整系统测试环境
[需求描述]
一、总体目标
在 Qlean 中构建一个完整的端到端测试环境,包括:
• Mega 服务(通过 docker compose 启动)
• 基础设施依赖
• 本地代码编译的 Orion 客户端
• UI 访问与构建测试能力
二、功能需求
- 在 Qlean 中使用已有 docker compose 启动 Mega
要求:
• 复用现有 docker-compose.yml
• 支持数据库、缓存、对象存储等基础设施
• 启动 Mega Server
• 支持端口映射(供 UI 和 Orion 访问)
实现要点:
• Qlean VM 内安装 Docker
• 自动执行:docker compose up -d
• 等待服务健康检查通过
- 在 Qlean 中编译并启动 Orion 客户端
要求:
• 使用当前本地代码版本
• 在 VM 内执行构建
• 指向 VM 内 Mega Server 地址
• 支持配置构建执行环境
流程:
1. 将本地代码同步至 Qlean VM
2. 执行编译(如 cargo build )
3. 启动 Orion 客户端
4. 注册到 Orion Server
需要考虑:
• Rust 编译环境准备
• 构建缓存策略(避免每次全量编译)
• 客户端启动配置文件
三、技术实现结构建议
建议在 Qlean 中设计一个统一启动脚本: bootstrap.sh
负责:
1. 启动 docker compose
2. 等待 Mega ready
3. 编译 Orion
4. 启动 Orion
5. 输出 UI 访问地址
四、非功能性要求
• 整体环境可重复构建
• 启动时间可接受(<5分钟理想)
• 失败时可获取完整日志
• 支持未来扩展多节点 Orion
[代码标准]
- 所有 PR 提交必须签署
Signed-off-by和 使用GPG签名,即提交代码时(使用git commit命令时)至少使用-s -S两个参数,参考 Contributing Guide; - 所有 PR 提交必须通过
GitHub Actions自动化测试,提交 PR 后请关注GitHub Actions结果; - 代码注释均需要使用英文;
[PR 提交地址] 提交到 mega 仓库的 main 分支 `` 目录;
[开发指导]
- 认领任务参考 r2cn 开源实习计划 - 任务认领与确认;
[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在 #p-meta 频道和导师交流。
- Quanyi Ma genedna@gmail.com
- Tianxing Ye yetianxing2014@gmail.com
[备注]
- 认领实习任务的同学,必须完成测试任务和注册流程,请参考: r2cn 开源实习计划 - 测试任务 和 r2cn 开源实习计划 - 学生注册与审核