feat: add frontend artifact delivery path

This commit is contained in:
Codex
2026-05-19 15:43:02 +00:00
parent 76b27c6aa9
commit a769242207
18 changed files with 277 additions and 91 deletions
+8 -7
View File
@@ -16,19 +16,20 @@ Code Queue 的 queue 合并弹窗是该公共组件的首个业务复用示例
## Deployment Contract
任何会影响公网 WebUI 的 frontend 源码、样式或导航变更,都必须在同一任务内完成 Docker 上线;只运行 TypeScript 检查、`Bun.build` 或修改仓库文件不代表公网生效。
任何会影响公网 WebUI 的 frontend 源码、样式或导航变更,都必须在同一任务内完成 artifact 发布和 CD 验证;只运行 TypeScript 检查、`Bun.build` 或修改仓库文件不代表公网生效。
**关键规则**frontend 容器启动时才从镜像内复制`src/components/frontend/src/app.tsx` 及其 TSX imports 构建 `/app.js`,运行中的 `unidesk-frontend` 不会自动读取工作区新文件。
**关键规则**frontend 容器从镜像内的 `src/components/frontend/src/app.tsx` 及其 TSX imports 构建 `/app.js`,运行中的 `unidesk-frontend` 不会自动读取工作区新文件。标准发布真相是 D601 CI 发布的 `127.0.0.1:5000/unidesk/frontend:<commit>` 和 dev/prod CD 对该 commit-pinned artifact 的 live commit 验证。
**上线流程**
1. 修改源码/CSS
2. 执行 `bun scripts/cli.ts server rebuild frontend`
3. `bun scripts/cli.ts job status latest` 确认 `status=succeeded`
4. 用 E2E `frontend:layout-overflow` 验证改动已生效
2. push commit 后执行 `bun scripts/cli.ts ci publish-user-service --service frontend --commit <full-sha>`
3. 执行 `bun scripts/cli.ts deploy apply --env dev --service frontend`
4. 执行 `bun scripts/cli.ts deploy apply --env prod --service frontend`
5. 验证 dev/prod `/health.deploy.commit`、image label 和实际页面/深链接都对应 requested commit
禁止用"本地 bundle 校验通过"代替 `server rebuild frontend`;禁止跳过 E2E 验证直接交付。
禁止用"本地 bundle 校验通过"`server rebuild frontend`、dirty worktree 或 mutable `latest` 代替 frontend artifact consumer 发布;禁止跳过 live commit 验证直接交付。
前端修改必须通过 `bun scripts/cli.ts server rebuild frontend` 上线。确认 job status=succeeded 后,用 E2E `frontend:layout-overflow` 验证改动已生效
`server rebuild frontend` 只保留为维护/非标准路径,不得作为标准发布证据。正式 frontend 发布必须通过 `ci publish-user-service --service frontend` 产出 commit-pinned image,再由 `deploy apply --env dev|prod --service frontend` 消费
如果公网仍是旧界面:1. 确认 job 已成功且容器创建时间晚于代码修改;2. 强制刷新或开无痕窗口;3. 用 curl -H "Cache-Control: no-cache" http://74.48.78.17:18081/app.js 查新 bundle。