devops: 部署冒烟升级成「用户可见产物」冒烟(现在验的是服务活着,不是产物可用)
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 0
- Avg merge
- 1h 7m
- Merged PRs (30d)
- 969
Description
## 背景
2026-09-06:devapp 上「生成中文 PDF」产出的是一份**打开全是方框**的文件,而这条链上
每一层都是绿的——部署 job success、healthz 200、门控全过。用户是靠**截图**发现的。
根因不止一个,但共同点只有一个:**验证层级比用户低一层**。
```
镜像构建成功 ≠ 跑着的容器是它
容器起来了 ≠ 配置指向真实存在的东西
脚本退出 0 ≠ 产物可用
产物是合法 PDF ≠ 打开不是方框
```
部署最后那步冒烟断言的是"内核自检",它对上面任何一条都不敏感。
## 要做什么
把冒烟从"服务活着"升级成**用户可见产物**:部署的最后一步,调线上沙箱真生成一份
中文 PDF,并**就地验它可读**(把内嵌字体掏出来重新解析,页面上画的每个字形都要有轮廓)。
判据逻辑已经写好,直接复用,不要重新发明:
- `.github/workflows/devapp-sandbox-cjk-pdf-probe.yml`(线上容器版)
- `apps/skill-sandbox/tests/produces-real-cjk-pdf.test.ts`(镜像版)
范围建议一并覆盖 docx/xlsx/pptx 各一条最小产物(三者是 OOXML,判据是"能解析 + 关键
内容在 XML 里",成本很低)。
## 验收
- 部署链上新增这条冒烟;**反证**:把镜像里的字体改坏(或指到不存在的路径)重跑,
部署必须红在这一步(而不是绿着上线)。
- 冒烟失败时的报错要说清"用户会看到什么"(例如"这些字形会渲染成方框"),
不是一句 assertion failed。
## 参考
- `.harness/instructions/deployment-verification-standard.md` 第二节
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with .github/workflows/devapp-sandbox-cjk-pdf-probe.yml and apps/skill-sandbox/tests/produces-real-cjk-pdf.test.ts to understand the existing artifact checks, then read .harness/instructions/deployment-verification-standard.md section 2. Add the deployment smoke step, extending coverage to minimal DOCX/XLSX/PPTX outputs if practical. Done means malformed fonts fail deployment with a user-visible explanation, while valid artifacts pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, typescript
- Domain
- ci-cd, devops, testing
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 65/100