-
Notifications
You must be signed in to change notification settings - Fork 123
Open
Description
[任务] BUCK 文件上传后接入 Mega 显式构建触发模型
[任务分值] 25 分
[背景描述]
随着 Mega 构建系统升级为 显式、可扩展的构建触发模型,构建不再仅由 Git pack 这一隐式事件触发,而是通过统一的 Build Trigger 进行调度。
在当前流程中
- BUCK / BUILD 文件(如 BUCK, TARGETS, buck2 相关配置)在上传到 Mega 后,尚未与新的构建触发模型进行系统性集成
随着 Mega 已引入新的 显式、可扩展的构建触发模型(Build Trigger):
- Git push 已被解耦为「事件 → Trigger → Build」
- 但 cargo buckal → BUCK 上传 → CL 生成 这一特殊路径
- 尚未纳入统一的 Trigger 体系
- 构建是否触发、为何触发,语义不清晰
- 难以支持 UI 可观测、手动重试、策略控制等能力
[需求描述]
一、目标
- 将 cargo buckal 上传 BUCK 文件 这一行为,显式建模为构建触发来源
- 统一纳入 Mega 的 Build Trigger 体系
二、核心需求
- 明确 cargo buckal 上传事件语义
- Mega 在处理来自 cargo buckal 的文件上传时:
- 将其抽象为一种 结构化的文件变更事件
- 事件需包含:
- 上传来源(cargo buckal)
- 目标 repo / branch
- 变更文件列表(BUCK / 相关配置)
- 接入显式 Build Trigger 创建流程
- 在 cargo buckal 上传并生成 CL 后:
- 显式创建 Build Trigger
- 推荐 trigger_type 示例:
- buck_file_upload
- cargo_buckal_update
- Trigger payload 至少包含:
- CL ID
- 变更路径
- 关联的 commit / branch
- 与其他触发方式保持一致
- cargo buckal 触发的构建应与 Git push trigger,Manual trigger,Retry trigger使用同一套构建调度与执行逻辑
- 构建系统不感知“cargo buckal”这一特殊来源,只感知 Trigger
[代码标准]
- 所有 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