Skip to content

[r2cn] 在 Qlean 环境中构建完整 Mega + Orion 集成测试环境(支持 UI 与构建测试) #1987

@benjamin-747

Description

@benjamin-747

[任务] 在 Qlean 环境中构建完整 Mega + Orion 集成测试环境(支持 UI 与构建测试)

[任务分值]35 分

[背景描述]

当前系统包含:

  • Mega 服务(Server)
  • Orion 客户端(构建执行端)
  • 依赖的基础设施(数据库、缓存、对象存储等)
  • 前端 UI
  • 构建执行流程

计划通过 Qlean 隔离环境实现:

  • 在 VM 内启动完整 Mega 服务栈
  • 编译当前本地代码版本的 Orion 客户端
  • 启动客户端并连接 Mega
  • 提供一个可真实访问的 UI 环境
  • 支持真实构建测试

目标是构建一个可复现、可隔离、可用于回归验证的完整系统测试环境

[需求描述]

一、总体目标

在 Qlean 中构建一个完整的端到端测试环境,包括:
• Mega 服务(通过 docker compose 启动)
• 基础设施依赖
• 本地代码编译的 Orion 客户端
• UI 访问与构建测试能力

二、功能需求

  1. 在 Qlean 中使用已有 docker compose 启动 Mega

要求:
• 复用现有 docker-compose.yml
• 支持数据库、缓存、对象存储等基础设施
• 启动 Mega Server
• 支持端口映射(供 UI 和 Orion 访问)

实现要点:
• Qlean VM 内安装 Docker
• 自动执行:docker compose up -d
• 等待服务健康检查通过

  1. 在 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

[代码标准]

  1. 所有 PR 提交必须签署 Signed-off-by 和 使用 GPG 签名,即提交代码时(使用 git commit 命令时)至少使用 -s -S 两个参数,参考 Contributing Guide
  2. 所有 PR 提交必须通过 GitHub Actions 自动化测试,提交 PR 后请关注 GitHub Actions 结果;
  3. 代码注释均需要使用英文;

[PR 提交地址] 提交到 mega 仓库的 main 分支 `` 目录;

[开发指导]

  1. 认领任务参考 r2cn 开源实习计划 - 任务认领与确认;

[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在 #p-meta 频道和导师交流。

  1. Quanyi Ma genedna@gmail.com
  2. Tianxing Ye yetianxing2014@gmail.com

[备注]

  1. 认领实习任务的同学,必须完成测试任务和注册流程,请参考: r2cn 开源实习计划 - 测试任务r2cn 开源实习计划 - 学生注册与审核

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions