feat(update): 检查更新优先静态 latest.json,避免用户撞 GitHub API 限流

- 客户端优先下载 releases/latest/download/latest.json,再回退 REST API
- 成功结果写入磁盘缓存,限流/断网时可 stale 回退
- 静默检查增加节流;限流文案改为用户无需配置 Token
- CI 与 build-release 发版时生成 latest.json 清单
- 补充静态清单/缓存/节流单测与生成脚本测试
This commit is contained in:
Syngnat
2026-07-09 12:35:12 +08:00
parent 566339f09f
commit 3beab030f4
14 changed files with 873 additions and 11 deletions

View File

@@ -1081,6 +1081,24 @@ jobs:
sha256sum "${FILES[@]}" > SHA256SUMS
fi
# 静态更新清单:客户端优先下载 github.com/.../latest/download/latest.json
# 避免终端用户检查更新打爆 api.github.com 未认证配额。
- name: Generate static update manifest (latest.json)
shell: bash
run: |
set -euo pipefail
TAG="${{ github.ref_name }}"
VERSION="${TAG#v}"
python3 tools/generate-update-latest-manifest.py \
--assets-dir release-assets \
--version "$VERSION" \
--tag "$TAG" \
--channel latest \
--output release-assets/latest.json
test -s release-assets/latest.json
echo "📄 latest.json ready:"
head -n 40 release-assets/latest.json
- name: Generate Driver SHA256SUMS
if: steps.driver_assets.outputs.has_driver_assets == 'true'
shell: bash