-
Notifications
You must be signed in to change notification settings - Fork 123
Open
Description
[任务] 实现 Orion Target 级构建状态上报与查询能力
[任务分值] 30 分
[背景描述]
目前 Orion 的构建流程中:
- Orion client 负责实际执行构建任务(如 Buck2 targets)
- Orion server 负责:
- 构建任务调度
- 日志聚合与分发
- 向前端提供构建整体状态
但现阶段存在一个明显缺口:
- 构建状态主要停留在 整体 / 任务级别
- 缺乏 Target 级别(per-target) 的执行状态
- 前端无法精确展示:
- 哪个 target 正在执行
- 哪些 target 已完成 / 失败 / 跳过
- 构建卡在哪个具体 target
因此,需要在 Orion client 中计算每个 target 的构建状态,并上报给 Orion server,由 server 统一对前端提供查询接口。
[需求描述]
一、目标
• 实现 Target 级别的构建状态采集、上报与存储
• Orion server 向前端提供 Target 执行状态查询接口
• 为日志、缓存、重复构建等能力提供基础数据
二、功能需求
- Orion Client:Target 状态计算
-
在构建执行过程中:
- 识别构建中涉及的 targets
- 跟踪每个 target 的执行状态
-
至少支持以下状态:
- pending:等待执行
- running:正在执行
- succeeded:成功完成
- failed:执行失败
- skipped(可选):被缓存或未执行
-
状态更新应:
- 尽量贴近真实执行时间
- 避免过于频繁的上报
- Orion Client → Orion Server 状态上报
- 定义 Target 状态上报协议 / API:
- 支持批量上报
- 支持增量更新
- 每次上报至少包含:
- 构建 ID / CL ID
- Target 标识(如 label)
- 当前状态
- 可选:开始 / 结束时间、错误信息
- Orion Server:状态接收与存储
- 接收来自 Orion client 的 Target 状态更新
- 按构建 / CL 维度聚合 Target 状态
- 保证:
- 状态更新的幂等性
- 支持并发上报
- Orion Server → 前端 查询接口
- 提供 API 供前端查询:
- 某次构建下所有 Target 的状态列表
- 单个 Target 的当前状态
[代码标准]
- 所有 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 开源实习计划 - 学生注册与审核
Reactions are currently unavailable