Skip to content

ci: add manual Bug Server validation for fork PRs - #4688

Merged
xile611 merged 1 commit into
developfrom
codex/bugserver-workflow-dispatch
Sep 17, 2026
Merged

xile611 merged 1 commit into
developfrom
codex/bugserver-workflow-dispatch

Conversation

@xile611

@xile611 xile611 commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

💡 问题与解决方案

外部 fork PR 的自动运行无法获得 BUG_SERVER_TOKEN,维护者缺少直接验证其 Bug Server 用例的入口。本次增加手动触发流程:输入 PR 编号和已审查的完整 head SHA,复用该提交的 PR 构建产物完成验证。

参考 VisActor/VRender#2134 的最终产物方案:

  • 新增 Bug Server PR Bundle,仅在 pull_request 上下文检出准确 head SHA,沿用 VChart 的 macOS / Node.js 18 和四步构建,上传保留 7 天的命名产物。
  • Bug Server CI 新增 workflow_dispatch。可信脚本校验 PR 当前 head、来源 workflow、事件、成功状态、仓库、分支及 SHA,选择对应的唯一未过期产物。
  • 默认分支手动流程只下载和提交产物,不构建 PR 代码。ZIP 只接受单一普通 index.js,最大 64 MiB,按固定路径写入字节,防止产物覆盖可信脚本。
  • 两个 workflow 默认只读权限,BUG_SERVER_TOKEN 仅注入最后的可信客户端 step。保留原有自动入口以及图片、性能测试行为。
  • 修复 bugserver-trigger 入口缺少 from 的 import,并补齐共享 ESLint 配置和中文使用说明。

🤔 变更类型

  • Workflow
  • 测试用例
  • 文档更新
  • Bug fix(修复构建入口语法)

🔗 相关 PR

🐞 Bugserver 用例 id

不适用:本次修改 CI 验证入口,未修改图表渲染行为。

☑️ 验证

  • Node 来源校验测试:36 项通过。
  • Python ZIP 测试:6 项通过,覆盖路径穿越、额外/重复文件、链接/特殊文件、体积限制和目标覆盖。
  • 两个 workflow 的 actionlint、Prettier、提交钩子及 git diff --check 通过。
  • 推送钩子 rush test --only tag:package 通过:VChart 87 个测试套件 / 482 项测试、vutils-extension 1 项测试。
  • 本地四步构建生成约 5.1 MB bundle,node --check 通过。使用 macOS / Node.js 24.19.0 和已有依赖,未重新安装全部 Rush 依赖;CI 继续使用 Node.js 18。
  • 直接执行 workflow 下载与 ZIP 读取脚本的 mock 验证:选定 artifact ID、保持字节内容、拒绝包含额外覆盖路径的归档。
  • 隔离客户端 mock 验证成功、图片测试失败、SCM 失败、token 缺失;检查 PR 元数据和 API 顺序,确认 bundle 只上传、不执行。
  • GitHub Actions / CodeQL 线上检查。
  • 合入默认分支后的真实手动 Bug Server 验证。

使用与影响

合入 develop 后,先等待目标 PR 的 Bug Server PR Bundle 成功,再从 Actions → Bug Server CI → Run workflow 选择 develop,填写 pr_numberhead_sha。旧 PR 需要新的 PR 事件触发新增工作流;产物缺失或过期时需重跑 bundle 构建。外部 fork 运行可能需要维护者批准。

每次 PR 事件会新增一个 bundle 构建任务。手动运行的 summary 记录 PR、SHA 和来源构建链接,不自动添加 PR 评论或额外 check。

📝 Changelog

Language Changelog
English Add manual Bug Server validation for reviewed fork PR artifacts.
中文 新增基于已审查 PR 产物的 Bug Server 手动验证流程。
  • 文档已提供。
  • 无需 demo 或公共 TypeScript API 更新。
  • CI 工具变更,无需发布包 changelog。

@xile611
xile611 merged commit 67864c4 into develop Sep 17, 2026
10 of 12 checks passed
@xile611
xile611 deleted the codex/bugserver-workflow-dispatch branch September 17, 2026 07:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants