diff --git a/AGENTS.md b/AGENTS.md index a4ce4985f..a3ebf0fb9 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -26,6 +26,9 @@ complete the three review rounds and close blocking findings before candidate pu Connected Chrome interaction checks complement committed automated browser tests; neither connection availability nor mocks replace actual playback or required device evidence. Each review fix remains a separate task and commit. Revalidate changed candidate contents. +The user explicitly includes GitHub CI/CD modernization in this refactor. +Follow [refactor/github-ci-cd.md](refactor/github-ci-cd.md) for PR checks, regression matrices, +artifacts, Pages and npm workflows. Distinguish local configuration from verified remote runs. ## Project Summary diff --git a/refactor/README.md b/refactor/README.md index 7c760ef33..b8b855453 100644 --- a/refactor/README.md +++ b/refactor/README.md @@ -26,6 +26,7 @@ | [docs 页面与编辑器测试](docs-browser-testing.md) | 复用已有 HTML、加载版本、隔离状态和补强文档 smoke | | [多轮复盘与 npm 准入](release-reviews.md) | Chrome 验证分工、三轮全局复盘、问题闭环和候选发布门槛 | | [工具链与发布](toolchain-release.md) | TypeScript、Bun、构建、版本管理和发布回退 | +| [GitHub CI/CD](github-ci-cd.md) | PR/兼容矩阵、构建报告、Pages、npm 发布及远端准入验证 | | [AI 协作流程](ai-workflow.md) | AI 接续工作、任务边界、验证、记录和交接模板 | | [架构决策](decisions.md) | 已选方向、待验证方案及被拒绝方案 | | [进度与证据](progress.md) | 本次会话结果、阻塞、下一步;不重复维护每个任务状态 | diff --git a/refactor/changes/2026-09-10-DOC-10-github-ci-cd.md b/refactor/changes/2026-09-10-DOC-10-github-ci-cd.md new file mode 100644 index 000000000..4ecac7fe7 --- /dev/null +++ b/refactor/changes/2026-09-10-DOC-10-github-ci-cd.md @@ -0,0 +1,22 @@ +# DOC-10 记录 GitHub CI/CD 优化范围 + +- 日期:2026-09-10;分支:`codex/compatible-modernization`。 +- 基线提交:`21fd40ec`。 +- 提交主题:`docs(refactor): [DOC-10] plan GitHub CI and release automation`。 +- 用户要求:优化增强 GitHub CI/CD,并记入重构文档。 + +## 交付 + +静态核对唯一 nodejs.yml、package.json 和构建流程,记录 master-only、自动修复 lint、单 job 构建与 Pages force push 耦合等现状。新增 github-ci-cd.md,覆盖 PR/回归矩阵、缓存/并发/超时/报告、权限、候选 artifact、Pages、npm 分包发布和远端验收。 + +补充 ENG-02,新增 CI-01/02/03/04 待办并将 CI-04 接入 REVIEW-03。新增 DOC-10 完成状态;原 203 项任务的 ID/范围/状态保留。共 208 项任务:10 项规划完成,198 项待办。没有修改 workflow、生产代码或外部配置。 + +## 验证与限制 + +计划生成与同步、依赖无环、22 包覆盖、本地链接检查通过;专项检查新 CI 前置进入候选/正式发布,原真机和复盘门槛保留。Git 差异及暂存范围检查通过,独立提交后核实日志与工作区。 + +参考官方 GitHub Actions/Pages 与 npm trusted publishing 文档,选定工具版本在实施时再次核对。未运行 GitHub Actions、构建或浏览器测试,没有创建定时任务、推送、部署、修改信任配置或发布 npm。 + +## 后续与回退 + +下一项仍为 BASE-01;ENG/CI 按依赖逐步实施,远端未知项单独登记。可回退本提交恢复之前计划,不影响现有 CI/CD。 diff --git a/refactor/github-ci-cd.md b/refactor/github-ci-cd.md new file mode 100644 index 000000000..1aa05c790 --- /dev/null +++ b/refactor/github-ci-cd.md @@ -0,0 +1,62 @@ +# GitHub CI/CD 优化与验收 + +2026-09-10 用户明确要求在本次重构中优化和增强 GitHub CI/CD。范围包含仓库检查、测试矩阵、构建产物、文档站部署和 npm 发布准备,并持续维护脚本文档及故障处理指南。本文是待实施规范,不代表 workflows 已更新或远端运行成功。 + +## 当前源码基线 + +[nodejs.yml](../.github/workflows/nodejs.yml) 是当前唯一 workflow:仅 push master 触发,Ubuntu + Node 20.x,checkout/setup-node 使用 v2;单一 job 执行 yarn 安装、两组 Node 测试、lint 和 build:all,再提交 docs、subtree split 并 force push gh-pages。 + +[package.json](../package.json) 中 lint 使用 --fix,build:all 又包含 lint;当前 workflow 没有 PR 触发、真实浏览器矩阵、类型消费者/tarball 检查、显式权限、并发取消、超时或报告上传。上述是文件检查结果,尚未核对 GitHub 的实际历史运行、Pages 配置、分支保护、环境规则或 npm 账号配置。旧流程的部署目标与访问路径必须先核实,不能仅改 YAML 就宣称迁移完成。 + +## 目标流水线 + +| 流程 | 触发和范围 | 交付/门槛 | +| --- | --- | --- | +| PR 和主线 CI | PR、主线及重构分支的相关提交;支持人工重跑 | 固定安装、只读 lint、类型、单元/生命周期、影响范围内的浏览器和产物测试、计划/文档检查 | +| 完整兼容回归 | 共享核心/构建变更、候选准备、定期或手动执行 | 全生态构建、新旧组合、所需 Node/TS/浏览器/系统矩阵、docs 编辑器及 HTML、性能/资源证据 | +| 候选产物准备 | 明确源码 ref 与包/版本范围的手动或受控调用 | 构建、pack、隔离消费者、完整性清单及报告;不发布 npm | +| 文档站部署 | 仅受信任主线或明确发布操作,依赖对应 CI | 部署已验证 Pages artifact,保留域名/CNAME、旧 URL、语言页和 compiled 路径,发布后探测 | +| npm 候选/正式发布 | 明确包批次、registry、版本、tag 和已批准的候选内容 | 三轮复盘与真实环境门槛通过后发布准确 tarball,读回版本/integrity并记录回退 | + +ENG-02 先建立只读 PR 检查和部署隔离框架,后续 CI 任务逐步接入已完成的测试基础;不能等全套回归齐备才给 PR 加基础检查。定期 workflow 是拟实现仓库能力,本文不创建 Codex 定时任务,也不即时启用远程作业。 + +## CI 的可靠性与运行成本 + +- Node/TS/包管理器版本来自 ENG-01、BASE-08 和 Bun 试点;最低消费者兼容与构建所需运行时分别验证,不因 Actions 升级静默提高消费者要求。 +- 覆盖 Linux 与 Windows 的关键脚本;浏览器覆盖 Chromium/Firefox/WebKit 和有需要的正式 Chrome。真机、Cast 等证据仍使用环境矩阵,不将 hosted runner 通过当作真机通过。 +- 安装使用选定包管理器的锁定模式;缓存按 OS、运行时、包管理器及锁文件隔离,浏览器缓存还绑定测试工具版本。禁止无关 PR 缓存/产物进入有发布权限的任务。 +- 快速检查依据依赖图而非简单路径过滤;共享核心/构建/锁文件变化扩大检查,影响不确定时完整回归。文档单改可缩小范围,但 required 汇总检查必须给出真实结果,不能将失败/取消误报成功或留下永久 pending。 +- PR 同分支的新提交取消过期检查;发布与部署按目标串行,不能取消一半已发生写入的发布。设置任务超时、合理并行/分片和报告保留期,避免重复 build:all 或重复 lint。 +- 只读检查不改源码;显式构建在指定输出目录生成产物。记录生成漂移,确保 build/test 不包含提交、推送或部署副作用。 +- 报告包含 commit、运行链接、工具版本、测试计数/跳过/重试、逐包结果、覆盖率、大小和性能;失败也上传可获得的日志、截图和 trace。大媒体/录像不提交源码,报告避免凭据泄露。 +- YAML/actionlint 等静态检查与真实 Actions 执行分别留证。至少演练正常 PR、失败测试、文档单改、核心变更及发布 dry run;旧问题按 ENG-10 台账处理,不用 continue-on-error 掩盖发布相关失败。 + +## 权限和第三方 Actions + +普通 CI 默认只读 contents,fork PR 不获取发布 secrets;不使用有写权限的 pull_request_target 执行外部 PR 代码。部署/发布权限仅授予相应 job。固定第三方 Actions 的完整提交 SHA 并注释版本,建立可审阅的升级流程,具体版本在实施时验证 runner 兼容性。GitHub 建议参见 [安全使用参考](https://docs.github.com/en/actions/reference/security/secure-use)。 + +required checks、环境审批、Pages source、npm trusted publisher 等是外部配置:记录现状、目标、所需权限和完成证据。仓库代码可先实现并提交;缺少远端配置时不得声称已启用发布能力。工作流配置优化不等于本次已经授权推送、部署或 publish;按已有发布授权规则操作,不重复询问常规本地修改。 + +## Pages 与 npm 分发 + +Pages 优先评估官方 artifact 部署流程,替代 CI 内提交/force push gh-pages 的耦合;先核对当前站点来源、域名、静态目录及保留文件,迁移前准备恢复旧部署方式的步骤。具体权限及 artifact 约束依据 [GitHub Pages workflow 文档](https://docs.github.com/en/pages/getting-started-with-github-pages/using-custom-workflows-with-github-pages)。尚未迁移远端设置时,旧站点仍须可恢复。 + +npm 保持 Lerna independent 的分包版本,不自动统一版本或抬高 major。优先评估 [npm trusted publishing](https://docs.npmjs.com/trusted-publishers/) 的 OIDC 和 provenance;逐包核对支持环境、CLI 版本及信任配置,不能因支持 OIDC 就假定本仓库已配置。发布 CLI 环境要求不自动改变消费者最低 Node 要求。 + +发布只接收明确受信任来源的候选 artifact,并核对源码 SHA、workflow run、包/版本/registry/tag 和 tarball integrity。不能执行任意外部 URL 提供的代码或仅凭 artifact 名称信任内容。避免发布阶段生命周期脚本悄悄重建包;若内容改变,重新验证。dry run 不能证明 npm 权限、OIDC 或真实发布成功。 + +重跑发布先读 registry:相同版本存在时核对 integrity;内容不符则停止,禁止覆盖或默认 unpublish。分包发布部分成功时记录已成功包、失败包及 tag 状态,按兼容依赖顺序恢复;不盲目重发全部。候选 tag 升为正式前重核 REVIEW 和反馈修复证据。发布/部署后分别验证 npm 安装与站点关键路径,并记录分包/tag/站点回退方案。 + +## 任务归属 + +| 任务 | 交付 | +| --- | --- | +| ENG-02 | 只读脚本、PR/主线检查及部署隔离基础 | +| ENG-05/07/08/09/10 | 浏览器、tarball、覆盖/性能、影响图、历史失败的可调用检查 | +| CI-01 | 完整回归矩阵、缓存/并发/超时、稳定汇总检查和持久报告 | +| CI-02 | Pages artifact 部署配置、路径保留、预检和恢复指南;远端切换状态明确 | +| CI-03 | npm 分包候选准备/发布工作流、信任配置清单、artifact 校验及部分失败恢复 | +| CI-04 | 流水线静态/干净环境/真实 PR 检查证据、dry run 与远端准入状态验收 | +| REVIEW-03、REL-05/06 | 发布前核对 CI-04;实际发布和部署按明确授权执行,读回真实结果 | + +CI-04 的仓库实现与远端配置证据分别报告。真实运行或必要配置尚未核实则该验收保持未完成,仍可继续其他独立本地任务;第三轮“发布就绪”不能绕过此缺口。 diff --git a/refactor/plan.md b/refactor/plan.md index a2345e013..963c98288 100644 --- a/refactor/plan.md +++ b/refactor/plan.md @@ -2,9 +2,9 @@ > 由 tasks.json 生成。请修改数据后运行 `node refactor/scripts/plan.mjs --write`,不要手改本表。 -基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 203 项,范围 22 个包及工作区/示例。 +基线:`40fcda6a37d0049d42e49c1e64e70d4fd9ba5f7f`。总任务 208 项,范围 22 个包及工作区/示例。 -状态:todo 194 / doing 0 / blocked 0 / done 9 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。 +状态:todo 198 / doing 0 / blocked 0 / done 10 / deferred 0。风险 L/M/H 表示兼容风险,不表示工期。 前置依赖是启动条件;验收是完成条件。任务可以继续拆分,但不能复用或悄悄删除旧 ID。 @@ -50,6 +50,7 @@ | DOC-07 | workspace
复审并优化计划顺序和执行门槛 | DOC-06 | 依赖优化、执行门槛规范、测试/发布补充和审查记录 | 依赖与覆盖校验、专项执行顺序断言通过;任务范围完整并独立提交 | L | done | | DOC-08 | workspace
记录 Chrome 验证及多轮 npm 发布复盘 | DOC-07 | 浏览器分工、三轮复盘规范、发布依赖与接续文档 | 计划和发布依赖检查通过;独立提交 DOC-08,连接可用不冒充测试通过 | L | done | | DOC-09 | workspace
记录 docs HTML 与在线编辑器测试入口 | DOC-08 | 页面/加载方式、状态隔离、行为断言与既有任务映射 | 源码清点和计划检查通过,独立提交 DOC-09;不把页面存在当作测试通过 | L | done | +| DOC-10 | workspace
记录 GitHub CI/CD 增强范围与验收 | DOC-09 | CI/CD 规范、四项实施任务与发布依赖 | 现有 workflow 核对、计划检查通过并独立提交;不冒充远端执行完成 | L | done | ## 1 基线 @@ -69,7 +70,7 @@ | ID | 范围 / 步骤 | 前置依赖 | 交付物 | 验收条件 | 风险 | 状态 | | --- | --- | --- | --- | --- | --- | --- | | ENG-01 | workspace
固定 Node、包管理器与依赖 | BASE-01 | 版本 pin、唯一锁文件、安装说明 | 干净环境可复现,最低 Node 与构建依赖一致,未夹带全量升级 | M | todo | -| ENG-02 | workspace
拆分只读检查并建立 PR CI | ENG-01 | lint/lint:fix、PR 与主线检查、独立部署任务 | 仓库内检查可执行且不改源码、不发布;required checks 的外部设置状态列入发布台账,不阻塞本地框架建设 | M | todo | +| ENG-02 | workspace
拆分只读检查并建立 PR CI | ENG-01 | lint/lint:fix、PR 与主线检查、独立部署任务;遵循 github-ci-cd.md,PR/重构分支触发、最小权限及 workflow 静态检查 | 仓库内检查可执行且不改源码、不发布;required checks 的外部设置状态列入发布台账,不阻塞本地框架建设 | M | todo | | ENG-03 | workspace
建立公共行为与单元测试入口 | ENG-02, BASE-03 | 保留现有 node:test,测试目录/夹具/统一入口 | 已有 19 项回归保留,旧版与候选可用同一夹具运行 | M | todo | | ENG-04 | workspace
建立类型测试基础 | ENG-02, BASE-05 | 根与分包 tsconfig、显式 TS 依赖、正反例测试 | 核心/试点与迁移模块严格检查,未迁移第三方/包历史问题独立台账;明确最低/当前 TS 和各环境类型 | M | todo | | ENG-05 | workspace
建立真实浏览器测试服务 | ENG-03, BASE-04, BASE-08 | Playwright projects、本地 Range/失败媒体服务;复用 docs 页面/样本的状态隔离、错误采集与候选资源映射 | Chromium/Firefox/WebKit 的基础播放 smoke 和报告可执行;以媒体状态断言判定通过,区分轻量用例与真实编辑器交互 | M | todo | @@ -79,6 +80,15 @@ | ENG-09 | workspace
建立全包依赖影响和文档检查 | ENG-07, DOC-04 | 共享核心/构建影响映射、文档及每任务完成提交的 Git 审计接入 | 核心变化触发必需生态检查;原有 DOC-01 至 04 基线例外明确,后续 done 任务不能缺失独立 commit | M | todo | | ENG-10 | workspace
建立历史失败分级和测试可靠性规则 | ENG-03, ENG-04, ENG-05, ENG-07, BASE-07 | 历史失败 ID/环境/旧版复现/负责修复任务、逐模块门槛、受控等待与 trace/retry 规则 | 不靠全局忽略或无理由 skip 隐藏问题,新增回归阻止交付,设备缺口和偶发失败单独可见 | M | todo | +## 2.2 GitHub CI/CD + +| ID | 范围 / 步骤 | 前置依赖 | 交付物 | 验收条件 | 风险 | 状态 | +| --- | --- | --- | --- | --- | --- | --- | +| CI-01 | workspace
增强兼容矩阵、并发缓存与 CI 报告 | DOC-10, ENG-08, ENG-09, ENG-10 | OS/Node/TS/浏览器与影响范围矩阵、缓存、超时、汇总检查和 artifact 报告 | 固定安装、失败/取消不误报、核心影响全生态;检查只读,失败证据可追溯 | H | todo | +| CI-02 | workspace
分离并改进 GitHub Pages 部署 | DOC-10, ENG-02, SITE-03 | Pages artifact 部署配置、旧路径/域名核对、预检和迁移恢复指南 | 部署只取受信任已验证产物;本地实现可验收,远端 source/环境和实际部署状态单独登记 | H | todo | +| CI-03 | workspace
建立 npm 分包候选与发布工作流 | DOC-10, CI-01, REL-08, REL-04 | 候选准备、精确 artifact 发布配置、OIDC 评估、版本/tag/registry 预检和部分失败恢复 | 不自动发布;明确逐包信任前置和 dry run 限制,不能重建未验证内容或重发冲突版本 | H | todo | +| CI-04 | workspace
验收 GitHub 流水线与远端发布准入 | CI-01, CI-02, CI-03, SITE-06 | 静态/干净环境检查、真实 PR 正反例、候选 dry run、required checks/Pages/npm 必需配置状态及运维指南 | 必要 Actions 证据和远端配置核对齐全;缺失保持未完成,真实 publish/deploy 仍在授权发布步骤执行 | H | todo | + ## 2.1 早期试点 | ID | 范围 / 步骤 | 前置依赖 | 交付物 | 验收条件 | 风险 | 状态 | @@ -383,7 +393,7 @@ | --- | --- | --- | --- | --- | --- | --- | | REVIEW-01 | workspace
第一轮全项目架构与兼容性复盘 | REL-02, CORE-22, SITE-04, MOD-05, DOC-08 | 22 包结构、类型、旧 API/路径、测试盲区和维护文档的逐包报告 | 本轮阻断项由独立修复任务关闭并复测;环境缺口转交下一轮,不宣称已发布就绪 | H | todo | | REVIEW-02 | workspace
第二轮真实浏览器与生态集成复盘 | REVIEW-01, REL-03 | Chrome 交互、自动浏览器、新旧组合、真机/SDK/性能/资源的全范围报告 | 所需环境证据齐全,前轮修复再次核对;本轮阻断项关闭,无关 mock 不替代真实验收 | H | todo | -| REVIEW-03 | workspace
第三轮 npm 候选内容与发布准备复盘 | REVIEW-02, REL-04 | 实际候选 integrity、干净安装构建/消费者、入口/许可/版本/tag/回退及前轮证据汇总 | 最终候选完整检查通过,发布阻断项为零;准备可审阅的批次报告,不自动执行 publish | H | todo | +| REVIEW-03 | workspace
第三轮 npm 候选内容与发布准备复盘 | REVIEW-02, REL-04, CI-04 | 实际候选 integrity、干净安装构建/消费者、入口/许可/版本/tag/回退及前轮证据汇总 | 最终候选完整检查通过,发布阻断项为零;准备可审阅的批次报告,不自动执行 publish | H | todo | ## 完成证据与阻塞 @@ -396,3 +406,4 @@ - DOC-07: [记录](changes/2026-09-10-DOC-07-plan-review.md) - DOC-08: [记录](changes/2026-09-10-DOC-08-browser-and-release-reviews.md) - DOC-09: [记录](changes/2026-09-10-DOC-09-docs-test-surfaces.md) +- DOC-10: [记录](changes/2026-09-10-DOC-10-github-ci-cd.md) diff --git a/refactor/progress.md b/refactor/progress.md index b25fe72c4..fa2c34699 100644 --- a/refactor/progress.md +++ b/refactor/progress.md @@ -1,6 +1,12 @@ # 进度与证据 -## 当前阶段:DOC-09 docs 测试入口记录 +## 当前阶段:DOC-10 GitHub CI/CD 规划 + +2026-09-10,用户明确纳入 GitHub CI/CD 优化。已核对现有 workflow 源码,新增 CI-01 至 CI-04 并接入第三轮发布复盘,文档见 [CI/CD 规范](github-ci-cd.md) 和 [DOC-10 记录](changes/2026-09-10-DOC-10-github-ci-cd.md)。现有 208 项任务:10 项规划完成、198 项待办;生产重构和 CI 改造均未开始。 + +计划/链接/依赖和 Git 差异检查通过;未修改 workflow、执行远端作业或发布。DOC-09 提交为 `21fd40ec`,本轮独立提交 DOC-10。下一项仍为 BASE-01。 + +## 2026-09-10:DOC-09 docs 测试入口记录 2026-09-10,将现有 HTML/Monaco 编辑器纳入真实测试方案,补充已有实施任务的具体要求。现有 203 项任务:9 项规划完成、194 项待办;生产重构与浏览器验收尚未开始。DOC-08 提交为 `3af9becf`。 diff --git a/refactor/release-reviews.md b/refactor/release-reviews.md index 67e697276..e5ce2954d 100644 --- a/refactor/release-reviews.md +++ b/refactor/release-reviews.md @@ -44,6 +44,8 @@ ## 发布关系 +REVIEW-03 还依赖 CI-04,核对 [GitHub CI/CD](github-ci-cd.md) 的真实检查结果、候选来源和必要远端配置。只有 YAML 或本地 dry run 通过,不能声称 npm 发布权限及正式工作流已验证。 + REVIEW-01 -> REVIEW-02 -> REVIEW-03 -> REL-05(经授权候选发布)-> REL-06(经授权正式发布)。REL-03 的真机验收与 REL-04 的回退演练继续保留;复盘不替代它们。代码迁移完成后仍需完成这些门槛。 用户在复盘后审阅具体发布批次:包/版本、目标 registry/tag、兼容结论、候选 integrity、剩余非阻断项和回退方法。表达将来发布到 npm 的目标不等同当前执行 publish;可以自主完成本地准备与复盘。 diff --git a/refactor/tasks.json b/refactor/tasks.json index fa90d0926..0b6f85220 100644 --- a/refactor/tasks.json +++ b/refactor/tasks.json @@ -165,6 +165,24 @@ "changes/2026-09-10-DOC-09-docs-test-surfaces.md" ] }, + { + "id": "DOC-10", + "phase": "0 规划", + "title": "记录 GitHub CI/CD 增强范围与验收", + "scope": [ + "workspace" + ], + "dependsOn": [ + "DOC-09" + ], + "status": "done", + "risk": "L", + "deliverable": "CI/CD 规范、四项实施任务与发布依赖", + "acceptance": "现有 workflow 核对、计划检查通过并独立提交;不冒充远端执行完成", + "evidence": [ + "changes/2026-09-10-DOC-10-github-ci-cd.md" + ] + }, { "id": "BASE-01", "phase": "1 基线", @@ -324,7 +342,7 @@ ], "status": "todo", "risk": "M", - "deliverable": "lint/lint:fix、PR 与主线检查、独立部署任务", + "deliverable": "lint/lint:fix、PR 与主线检查、独立部署任务;遵循 github-ci-cd.md,PR/重构分支触发、最小权限及 workflow 静态检查", "acceptance": "仓库内检查可执行且不改源码、不发布;required checks 的外部设置状态列入发布台账,不阻塞本地框架建设", "evidence": [] }, @@ -469,6 +487,81 @@ "deliverable": "历史失败 ID/环境/旧版复现/负责修复任务、逐模块门槛、受控等待与 trace/retry 规则", "acceptance": "不靠全局忽略或无理由 skip 隐藏问题,新增回归阻止交付,设备缺口和偶发失败单独可见" }, + { + "id": "CI-01", + "phase": "2.2 GitHub CI/CD", + "title": "增强兼容矩阵、并发缓存与 CI 报告", + "scope": [ + "workspace" + ], + "dependsOn": [ + "DOC-10", + "ENG-08", + "ENG-09", + "ENG-10" + ], + "status": "todo", + "risk": "H", + "deliverable": "OS/Node/TS/浏览器与影响范围矩阵、缓存、超时、汇总检查和 artifact 报告", + "acceptance": "固定安装、失败/取消不误报、核心影响全生态;检查只读,失败证据可追溯", + "evidence": [] + }, + { + "id": "CI-02", + "phase": "2.2 GitHub CI/CD", + "title": "分离并改进 GitHub Pages 部署", + "scope": [ + "workspace" + ], + "dependsOn": [ + "DOC-10", + "ENG-02", + "SITE-03" + ], + "status": "todo", + "risk": "H", + "deliverable": "Pages artifact 部署配置、旧路径/域名核对、预检和迁移恢复指南", + "acceptance": "部署只取受信任已验证产物;本地实现可验收,远端 source/环境和实际部署状态单独登记", + "evidence": [] + }, + { + "id": "CI-03", + "phase": "2.2 GitHub CI/CD", + "title": "建立 npm 分包候选与发布工作流", + "scope": [ + "workspace" + ], + "dependsOn": [ + "DOC-10", + "CI-01", + "REL-08", + "REL-04" + ], + "status": "todo", + "risk": "H", + "deliverable": "候选准备、精确 artifact 发布配置、OIDC 评估、版本/tag/registry 预检和部分失败恢复", + "acceptance": "不自动发布;明确逐包信任前置和 dry run 限制,不能重建未验证内容或重发冲突版本", + "evidence": [] + }, + { + "id": "CI-04", + "phase": "2.2 GitHub CI/CD", + "title": "验收 GitHub 流水线与远端发布准入", + "scope": [ + "workspace" + ], + "dependsOn": [ + "CI-01", + "CI-02", + "CI-03", + "SITE-06" + ], + "status": "todo", + "risk": "H", + "deliverable": "静态/干净环境检查、真实 PR 正反例、候选 dry run、required checks/Pages/npm 必需配置状态及运维指南", + "acceptance": "必要 Actions 证据和远端配置核对齐全;缺失保持未完成,真实 publish/deploy 仍在授权发布步骤执行", + "evidence": [] + }, { "scope": [ "artplayer-plugin-chapter" @@ -3537,7 +3630,8 @@ ], "dependsOn": [ "REVIEW-02", - "REL-04" + "REL-04", + "CI-04" ], "status": "todo", "risk": "H", diff --git a/refactor/testing.md b/refactor/testing.md index d9fcac05e..8147293ec 100644 --- a/refactor/testing.md +++ b/refactor/testing.md @@ -50,6 +50,8 @@ ## CI 分层 +用户已明确要求增强 GitHub CI/CD,当前 workflow 问题、目标矩阵、报告和实现任务见 [GitHub CI/CD 规范](github-ci-cd.md)。本地测试通过、workflow 静态检查、真实 Actions 通过分别记录。 + | 触发 | 内容 | | --- | --- | | 每次 PR | 固定安装、只读 lint、类型、受影响单元/生命周期、核心浏览器 smoke、受影响发布包检查 | diff --git a/refactor/toolchain-release.md b/refactor/toolchain-release.md index d903053a7..888ed73e9 100644 --- a/refactor/toolchain-release.md +++ b/refactor/toolchain-release.md @@ -54,6 +54,8 @@ TypeScript 用于自有源码、检查与声明生成;Vite/Rollup 保留现有 ## 发布流程 +GitHub CI/CD 的优化属于本次重构范围,按 [CI/CD 规范](github-ci-cd.md) 分离 PR 检查、候选准备、Pages 部署与 npm 发布。新增 CI-01 至 CI-04 交付矩阵/报告、部署、分包发布准备及远端准入验收;第三轮复盘需核对这些结果。 + 实现完成后必须执行 [三轮全局复盘](release-reviews.md)(REVIEW-01/02/03),分别核对架构兼容、真实环境和最终 npm 候选内容。REL-05 依赖三轮通过;候选反馈修复后的正式发布重新核对受影响证据,不能直接复用旧候选的验收结果。 1. BASE-01 确定旧核心和插件的支持矩阵,登记 npm tarball integrity。起点 SHA 不能代替消费者产物基线。