boardx / boardx/workspacex

devops: 部署冒烟升级成「用户可见产物」冒烟(现在验的是服务活着,不是产物可用)

Open
#2,848 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.