[任务] 重构 Orion Server 日志处理部分代码
[任务分值] 25 分
[背景描述]
目前团队正在基于 BUCK2 搭建一套自动化构建系统,用于支持代码变更(Merge Request,MR)触发的持续集成流程。该系统包含一个核心构建服务 Orion,负责接收构建触发请求,调度 BUCK2 执行构建任务,并输出构建结果。为了提升用户体验,需要将构建日志和结果实时反馈到前端页面,使开发者能够快速了解构建进度和最终状态
在现有实现中,已经完成了 Orion 构建服务的基础功能,包括构建触发、任务调度和部分日志输出。但在与前端联调的过程中发现以下问题:
1. 构建结果 API 无法正常请求,前端无法及时获取最终的构建结果状态。
2. 通过 SSE(Server-Sent Events)向前端输出的日志中,出现了历史日志重复推送的问题,导致前端展示的日志内容混乱。
需要重构Orion server 的日志部分以符合新的业务需求
[需求描述]
- SSE 输出实时日志:构建任务触发后,通过 SSE 通道向前端持续推送实时日志。要求日志内容按构建进度顺序输出,确保用户可以看到实时反馈。
- 单独提供历史日志 API:为已完成的构建任务提供独立的历史日志查询接口,支持前端在构建前或页面刷新后加载之前的日志内容。
- 历史日志需要符合以下需求:
- 能够获取历史日志列表
- 能够获取单段历史日志内容
- 能够获取完整构建日志
- 可以通过API来查询构建结果,前端根据状态决定是否继续拉取日志或关闭 SSE。
[代码标准]
- 所有 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 开源实习计划 - 学生注册与审核
[任务] 重构 Orion Server 日志处理部分代码
[任务分值] 25 分
[背景描述]
目前团队正在基于 BUCK2 搭建一套自动化构建系统,用于支持代码变更(Merge Request,MR)触发的持续集成流程。该系统包含一个核心构建服务 Orion,负责接收构建触发请求,调度 BUCK2 执行构建任务,并输出构建结果。为了提升用户体验,需要将构建日志和结果实时反馈到前端页面,使开发者能够快速了解构建进度和最终状态
在现有实现中,已经完成了 Orion 构建服务的基础功能,包括构建触发、任务调度和部分日志输出。但在与前端联调的过程中发现以下问题:
1. 构建结果 API 无法正常请求,前端无法及时获取最终的构建结果状态。
2. 通过 SSE(Server-Sent Events)向前端输出的日志中,出现了历史日志重复推送的问题,导致前端展示的日志内容混乱。
需要重构Orion server 的日志部分以符合新的业务需求
[需求描述]
[代码标准]
Signed-off-by和 使用GPG签名,即提交代码时(使用git commit命令时)至少使用-s -S两个参数,参考 Contributing Guide;GitHub Actions自动化测试,提交 PR 后请关注GitHub Actions结果;[PR 提交地址] 提交到 mega 仓库的
main分支 `` 目录;[开发指导]
[导师及邮箱] 请申请此题目的同学使用邮件联系导师,或加入到 R2CN Discord 后在
#p-meta频道和导师交流。[备注]