docs: record web production cache validation

这个提交包含在:
XuqmGroup 2026-07-27 13:28:33 +08:00
父节点 cdf432b674
当前提交 6b68dd4f58

查看文件

@ -10,7 +10,8 @@ SDK 平台的完整服务端契约见 Server 仓库 `docs/SDK_PLATFORM_V2_HANDOF
- 产物上传示例只使用 `Authorization: Bearer XUQM_API_TOKEN`,不得把 Token 放入 URL。 - 产物上传示例只使用 `Authorization: Bearer XUQM_API_TOKEN`,不得把 Token 放入 URL。
- 已删除废弃的离线 license 服务页面、路由、API、菜单和日志入口。 - 已删除废弃的离线 license 服务页面、路由、API、菜单和日志入口。
- 依赖管理统一为根 `package.json` 声明的 Yarn 1 与 `yarn.lock` - 依赖管理统一为根 `package.json` 声明的 Yarn 1 与 `yarn.lock`
- `Jenkinsfile.tenant-web` 默认 development,仅验证;production 需要人工确认才允许推送、部署和提交版本号。 - 租户端与运维端统一使用根 `Jenkinsfile`;流水线根据 Jenkins job 名确定构建目标,
不再维护两份内容重复的专用 Jenkinsfile。
- Web 生产缓存使用版本目录协议:入口 HTML/manifest 禁止持久缓存,哈希资源使用 - Web 生产缓存使用版本目录协议:入口 HTML/manifest 禁止持久缓存,哈希资源使用
`releases/<SERVICE_VERSION>/assets/` 和一年 `immutable` `releases/<SERVICE_VERSION>/assets/` 和一年 `immutable`
- Jenkins 构建会把上一 `latest` 镜像作为 `PREVIOUS_IMAGE`;新镜像只保留上一版本的 - Jenkins 构建会把上一 `latest` 镜像作为 `PREVIOUS_IMAGE`;新镜像只保留上一版本的
@ -32,12 +33,15 @@ nginx -t -p "$PWD/" -c scripts/nginx-test.conf
2026-07-27 缓存契约测试会使用固定 release ID 重新构建 tenant、ops 与 docs,并校验 2026-07-27 缓存契约测试会使用固定 release ID 重新构建 tenant、ops 与 docs,并校验
HTML 引用、版本目录、Nginx 缓存头及 Docker 上一版本保留门禁。 HTML 引用、版本目录、Nginx 缓存头及 Docker 上一版本保留门禁。
Jenkins 和线上部署需由发布流程另行执行;本地构建不能代替生产响应头验收。 ## 2026-07-27 Jenkins 与生产验证
# 2026-07-27 Jenkins SCM 凭据收口
- tenant-web 显式 checkout 已改用 Gitea SSH URL 和 Jenkins - Windows Jenkins 节点统一使用 `jenkins-ssh-key` 私钥凭据和构建期临时
`jenkins-ssh-key`,不再引用未配置的 `XUQM_GIT_CREDENTIALS`;其它 Web 作业继续 `git-ssh.cmd` 完成版本提交推送,流水线结束时删除临时脚本。
复用各自 Jenkins SCM 配置。三套 Web 流水线的版本文件回写均使用 - `xuqmgroup-tenant-web` #39 成功构建并部署 `tenant-web:1.0.50`
`sshagent(jenkins-ssh-key)`,避免 checkout 结束后 push 缺少凭据。 `xuqmgroup-ops-web` #20 成功构建并部署 `ops-web:1.0.4`。两个作业均通过同一份根
- 该修改尚未通过下一次 Web Jenkins 构建验证;缓存策略提交部署前必须先确认 `Jenkinsfile` 自动识别目标,并成功回写各自版本文件。
checkout 与三套前端构建均成功。 - `https://dev.xuqinmin.com/``https://ops.xuqinmin.com/` 的入口 HTML 均返回
`Cache-Control: no-cache, no-store, must-revalidate`
- 两个平台本次发布的 `releases/<version>/assets/*.js` 均返回
`Cache-Control: public, max-age=31536000, immutable`;不存在的版本资源均真实返回
HTTP 404,没有回退到 SPA 入口。