4.8 KiB
Pages 迁移、验收与恢复
CI-02交付本地配置与预检;CI-04负责实际远端运行和配置切换。当前没有部署、推送、 修改仓库变量或调整Pages source。完整站点内容、外部SDK和三轮发布复盘门槛仍适用。
2026-09-14只读快照
- Pages API:
build_type=legacy,source为gh-pages、根目录,status=built。 - CNAME与html_url:
github.artplayer.org、https://github.artplayer.org/。 HTTPS enforced,证书state=approved;这些是API返回值,不是独立TLS/DNS审计。 - gh-pages提交:
a6d2b81d05c68c8c78cbe62ca0b06761c983f8b8。本地对象已存在, 已用git archive保存ZIP恢复副本,路径/内容哈希见CI-02机器记录。 - github-pages环境为custom branch policies,读取到master与gh-pages两个branch规则。 protection_rules只有branch_policy;未据此新增或删除规则。
- PAGES_DEPLOY_ENABLED查询返回404:不能据此证明变量不存在或权限完整;启用状态未确认。
- 对根页、mobile.html、iframe.html、esm.html、document/、document/en/、 compiled/artplayer.js的HTTPS HEAD均返回200。未执行线上播放器或广告交互。
以上是时间点快照。发布前再次只读查询,核对源码SHA、旧分支、域名、环境保护和变量, 不能把它们写成永久配置或实际Actions部署已成功。
本地与CI产物链
- 使用.node-version与Yarn1.22.22,frozen安装,执行ci:check和ci:build。
- prepare:pages检查compiled与dist一致,将docs复制到独立cache目录,然后正常构建 21个旧uncompiled入口。保留CNAME/.nojekyll、旧HTML与两种语言的文档入口。
- test:pages:browser检查暂存目录的demo/ESM入口。全部所需CI作业成功后,官方 upload-pages-artifact只上传本次步骤输出的site,deploy-pages在github-pages环境执行。
- 报告记录source、来源文件/锁/构建脚本、63个分发入口及完整暂存文件指纹;没有 用工作区docs路径替代暂存目录,也没有从外部workflow run下载同名artifact。
脚本边界和命令见scripts/pages。GitHub对Pages artifact 要求无符号/硬链接,部署需要对应权限、environment及构建依赖,见 官方自定义工作流说明。 当前固定Actions的SHA沿用已验证配置,未升级依赖。
获得实际部署授权后的切换顺序
先确认完整发布门槛和目标master源码,再重新保存当前gh-pages提交及完整旧目录。 核对github-pages只允许受信任分支及必要审批,把Pages source切换为GitHub Actions。 确认自定义域名/DNS/TLS保持原值后,设置PAGES_DEPLOY_ENABLED=true并手动运行Deploy Pages。 记录run ID/attempt/SHA、预检报告哈希、artifact与部署URL;不要只根据workflow名称信任产物。
部署后逐项GET验证contract.json的旧路径、MIME和关键文本,再在真实页面验证桌面/ 移动编辑器、中文/英文文档、ESM、iframe及播放/章节。HEAD200只证明可访问,不能代替 这些交互。检查被重写或丢失的路径,以及compiled/uncompiled确实来自批准的候选。
恢复
REL-04 已完成本地完整恢复演练: 固定旧 gh-pages 提交的 538 个文件逐一匹配 Git blob,模拟脚本/域名损坏、文件缺失 和新版遗留后恢复成功,12 条 HTTP 路径与六项三引擎播放通过。
之前的 CI-02 ZIP 受本机换行配置影响,有 403 处 CRLF 文本转换;其原始记录保持
不变,但不能用于声称 Git blob 字节完全一致。今后使用命令级
git -c core.autocrlf=false -c core.eol=lf archive 并核对全部文件,而不是修改
全局配置或在核验时忽略换行。新 canonical ZIP 路径和哈希见
机器证据,与报告一起保存。
该本地演练不代替以下远端恢复流程和 CI-04 门槛。
发生故障先禁用启用变量,避免新部署进入队列;不要取消已经开始的写入或自动force push。 保存失败run/部署/请求证据,并重新读取当前source和分支SHA。
如果旧gh-pages仍指向已保存的提交,经授权将Pages source恢复为该分支根目录,保留 原域名/HTTPS并等待Pages完成构建,然后重复旧路径和交互验证。如果分支已被其他人 修改,不能直接移动它:先核对保存ZIP的哈希与Git提交内容,准备明确的恢复提交/操作 供批准。恢复本次仓库代码可以revert CI-02提交,但revert不会自行恢复远端设置。
旧自动force-push工作流不是默认恢复方案。任何再次构建、内容调整或候选替换都要重跑 适用检查;不能把之前的绿灯套用到新的站点字节。