mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-08 19:06:15 -08:00
71 lines
4.8 KiB
Markdown
71 lines
4.8 KiB
Markdown
# 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产物链
|
||
|
||
1. 使用.node-version与Yarn1.22.22,frozen安装,执行ci:check和ci:build。
|
||
2. prepare:pages检查compiled与dist一致,将docs复制到独立cache目录,然后正常构建
|
||
21个旧uncompiled入口。保留CNAME/.nojekyll、旧HTML与两种语言的文档入口。
|
||
3. test:pages:browser检查暂存目录的demo/ESM入口。全部所需CI作业成功后,官方
|
||
upload-pages-artifact只上传本次步骤输出的site,deploy-pages在github-pages环境执行。
|
||
4. 报告记录source、来源文件/锁/构建脚本、63个分发入口及完整暂存文件指纹;没有
|
||
用工作区docs路径替代暂存目录,也没有从外部workflow run下载同名artifact。
|
||
|
||
脚本边界和命令见[scripts/pages](../scripts/pages/README.md)。GitHub对Pages artifact
|
||
要求无符号/硬链接,部署需要对应权限、environment及构建依赖,见
|
||
[官方自定义工作流说明](https://docs.github.com/en/pages/getting-started-with-github-pages/using-custom-workflows-with-github-pages)。
|
||
当前固定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 已完成[本地完整恢复演练](changes/2026-09-15-REL-04-pages-recovery.md):
|
||
固定旧 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 路径和哈希见
|
||
[机器证据](baselines/pages-recovery-validation.json),与报告一起保存。
|
||
该本地演练不代替以下远端恢复流程和 CI-04 门槛。
|
||
|
||
发生故障先禁用启用变量,避免新部署进入队列;不要取消已经开始的写入或自动force push。
|
||
保存失败run/部署/请求证据,并重新读取当前source和分支SHA。
|
||
|
||
如果旧gh-pages仍指向已保存的提交,经授权将Pages source恢复为该分支根目录,保留
|
||
原域名/HTTPS并等待Pages完成构建,然后重复旧路径和交互验证。如果分支已被其他人
|
||
修改,不能直接移动它:先核对保存ZIP的哈希与Git提交内容,准备明确的恢复提交/操作
|
||
供批准。恢复本次仓库代码可以revert CI-02提交,但revert不会自行恢复远端设置。
|
||
|
||
旧自动force-push工作流不是默认恢复方案。任何再次构建、内容调整或候选替换都要重跑
|
||
适用检查;不能把之前的绿灯套用到新的站点字节。
|