ci(pages): [CI-02] validate staged artifacts and preserve legacy demo paths

This commit is contained in:
Harvey Zhao committed 2026-09-14 16:43:33 +08:00
1 parent b1e0b976b0
commit 72d2b9c36b
20 files changed
+6120 -13

No files matched your search

@@ -0,0 +1,36 @@
# CI-02 Pages产物预检与独立部署
生产构建只更新compiled,而现有移动页、iframe和编辑器示例继续使用uncompiled。
直接上传docs可能保留旧开发产物。本次在独立暂存目录按现有开发配置构建21个旧入口,
保持旧URL/全局名称/开发模式,工作区docs和包产物不被改写。没有更换播放器API、版本或依赖。
新增pages/artifact.ts负责文件、路径、域名和compiled一致性,prepare.ts负责暂存和
调用现有library构建模块,入口CLI只处理命令/输出。包源码、构建输入和完整站点输出
都有指纹。CNAME/.nojekyll、旧HTML、语言/编辑器/i18n入口必须存在;规则不声称覆盖
所有动态外部链接。test:pages及test:pages:browser加入package scripts,普通Node测试
运行文件/工作流回归,浏览器验证仅在显式命令或受信任Pages准备分支中执行。
工作流先build,再prepare,再安装浏览器和执行暂存入口检查,最后上传准确site路径。
部署继续等待全部CI作业成功,保留master/启用变量/manual/environment限制;仅deploy
有Pages/OIDC写权限。不增加远端操作,失败不上传用于部署的站点,但保留诊断报告。
## 实际验证
- 21个入口构建成功,63项compiled/dist比较一致,暂存546个文件;正常目录与包源码未改。
- 55项CI/文件/权限回归通过;严格library TS、定向lint与actionlint1.7.12通过。
- 同一暂存目录的demo/ESM两种入口,Windows Chromium153.0.8010.12、Firefox155.0、
WebKit26.6共6项实际播放、章节更新、网页全屏和销毁检查通过。
- 首轮拦截MP4完整响应使WebKit两项超时;第二轮跨端口原生HTTP使Chromium两项媒体
ERR_FAILED,其余通过。最终使用同源HTTP/Range。没有确定跨端口错误的浏览器内部根因。
- 同源首轮全部走完播放,但Chromium两项把媒体ERR_ABORTED并入脚本错误断言而失败。
修正为记录网络事件、检查脚本加载错误/JS异常以及播放时的video.error。保留原失败报告,
没有为掩盖产品错误增加等待或关闭浏览器;首轮默认30秒,最终显式10秒。
- Pages API、分支/环境只读查询和7个线上HEAD200留档;部署变量返回404、启用状态未知。
旧gh-pages提交的本地ZIP已保存;没有修改Pages source或发布站点。
证据见[机器记录](../baselines/pages-artifact-validation.json),维护地图和恢复流程见
[部署说明](../pages-deployment.md)。CI-02只完成本地实现;CI-04仍负责真实远端run、
环境迁移、部署后探测及故障演练。站点/插件/设备/许可和发布复盘未自动完成。
回退本提交恢复原工作流上传docs的配置,移除新脚本/测试/状态;远端设置不会随Git回退,
必须按部署说明单独处理。不push、不publish,也不执行远端恢复写入。