文件
hyb-oa/artifacts/r104-public-deploy-visual-acceptance/report.md
T

199 行
5.8 KiB
Markdown
原始文件 Blame 文件历史

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
# R104 公网部署与视觉验收报告
日期:2026-05-07
## 结论
R100-R103 最新变更已部署到公网 `https://oa.hyinda.com`,自动化验收通过。
已完成:
- 本地发布前门禁通过。
- 已创建发布 tag:`trialrun-20260507-01`。
- 已执行 `bash deploy/trialrun/deploy.sh` 部署到 `118.89.77.218:/opt/hyb-oa-trialrun`。
- 公网 `/ready` 通过。
- 远端 `smoke-external-deps.js` 通过,当前 OCR provider 为 `tencent`。
- 远端 `smoke-trialrun-runtime.js` 通过。
- 公网 live smoke 通过:管理员、员工只读 smoke 共 3 条通过。
- 公网视觉 Playwright 通过:桌面登录、企微 OAuth 边界、移动工作台、移动报销/请假、PC 报销/票据共 4 条通过。
- 公网真实腾讯 OCR 辅助复核通过:真实 PDF 发票上传后进入可处理状态。
仍需人工确认:
- 用真实手机企业微信从工作台打开 OA 应用,确认已绑定账号直接进入 `/mobile`。自动化已覆盖到 OAuth 跳转边界,但不能替代真实企业微信客户端内的最终点击。
## 本地发布前验证
已执行:
```bash
node deploy/trialrun/validate-env-contract.js
cd server && npm run prisma:validate
node scripts/qa/check-ui-design-rules.mjs
cd client && npm run typecheck
cd client && npm run build
cd client && npx playwright test tests/e2e/r102-reimbursement-main-flow.spec.ts tests/e2e/r103-cross-page-ui-consistency.spec.ts --reporter=list
```
结果:
- 部署环境契约:通过。
- Prisma schema:通过。
- UI 设计规则:`0 findings`。
- 前端 typecheck:通过。
- 前端 build:通过;仍有既有 Vite manual chunk circular warning,本批不处理。
- R102/R103 Playwright:`6 passed`。
## 公网部署
已执行:
```bash
git tag -a trialrun-20260507-01 -m "trialrun release 20260507-01"
bash deploy/trialrun/deploy.sh
```
部署结果:
- 远端目录:`/opt/hyb-oa-trialrun`
- 远端环境文件:`/opt/hyb-oa-trialrun/deploy/trialrun/.env`
- `.env` 未从本地同步,沿用远端事实源。
- 远端 server 容器已重建。
- 部署脚本内 `/ready`、external deps smoke 通过。
- 部署脚本本机缺少完整 `LIVE_SMOKE_*`,因此 live smoke 由后续步骤手动补跑。
## 公网配置核验
已执行:
```bash
curl -fsS https://oa.hyinda.com/ready
curl -fsS https://oa.hyinda.com/api/auth/wecom/config
curl -sSI 'https://oa.hyinda.com/api/auth/wecom/login?returnTo=%2Fmobile'
```
结果:
- `/ready`:通过。
- 企业微信配置:
- `status=ready`
- `entryEnabled=true`
- `oauthEnabled=true`
- `defaultReturnTo=/mobile`
- `loginUrl=/api/auth/wecom/login?returnTo=%2Fmobile`
- 企业微信登录入口:`HTTP 302` 到 `open.weixin.qq.com`,回调地址为 `https://oa.hyinda.com/api/auth/wecom/callback`,state 中 `returnTo=/mobile`。
远端关键配置只读核验:
- `WECOM_ENTRY_ENABLED=true`
- `WECOM_OAUTH_ENABLED=true`
- `OPENAPI_DOCS_ENABLED=false`
- `COOKIE_SECURE=true`
- `PUBLIC_SECURITY_HARDENING_ENABLED=true`
- `OCR_PROVIDER=tencent`
## 远端 smoke
已执行:
```bash
ssh [email protected] 'cd /opt/hyb-oa-trialrun && ... exec -T server node src/scripts/smoke-trialrun-runtime.js'
```
结果:
- Prisma 连接正常。
- 工作区 `profile=small_team_internal`。
- trialrun 必需功能开关均 enabled。
- 导航构建成功:`main=9 admin=7`。
- `trialrun runtime smoke` 通过。
## 公网 live smoke
操作:
- 仅重置独立 smoke 账号 `SMOKE001` / `SMOKE002` 随机密码。
- 密码仅作为临时环境变量传给 Playwright,未写入 git,未写入报告。
已执行:
```bash
LIVE_SMOKE_BASE_URL=https://oa.hyinda.com \
LIVE_EXPECT_WECOM_STATUS=ready \
LIVE_SMOKE_ADMIN_IDENTIFIER=[email protected] \
LIVE_SMOKE_EMPLOYEE_IDENTIFIER=[email protected] \
bash scripts/qa/run-web-gates.sh smoke-live
```
结果:
- 公网基础探活与企微配置状态:通过。
- 管理员只读网页 smoke:通过。
- 员工只读网页 smoke:通过。
- 总计:`3 passed`。
## 公网视觉自动化
新增测试:
```bash
client/tests/e2e/r104-public-visual-acceptance.spec.ts
```
已执行:
```bash
cd client
LIVE_SMOKE_BASE_URL=https://oa.hyinda.com \
LIVE_EXPECT_WECOM_STATUS=ready \
LIVE_SMOKE_ADMIN_IDENTIFIER=[email protected] \
LIVE_SMOKE_EMPLOYEE_IDENTIFIER=[email protected] \
E2E_MODE=live \
npx playwright test tests/e2e/r104-public-visual-acceptance.spec.ts --reporter=list
```
结果:`4 passed`。
覆盖:
- 公网桌面登录页与企业微信配置。
- 公网企业微信入口跳转到 OAuth 边界。
- 公网员工移动工作台、移动报销、移动请假。
- 公网 PC 报销与票据页面。
截图输出:
- `output/playwright/r104/desktop-login.png`
- `output/playwright/r104/mobile-login-before-wecom.png`
- `output/playwright/r104/mobile-home.png`
- `output/playwright/r104/mobile-reimbursements.png`
- `output/playwright/r104/mobile-leave.png`
- `output/playwright/r104/desktop-reimbursements.png`
- `output/playwright/r104/desktop-invoice-pool.png`
## 公网真实腾讯 OCR
远端 OCR provider 当前为 `tencent`,因此执行真实 PDF 发票辅助复核。
已执行:
```bash
cd client
PLAYWRIGHT_MANUAL=1 \
PLAYWRIGHT_OCR_LIVE=1 \
PLAYWRIGHT_OCR_LIVE_FILE=/home/shunli/Projects/hyb-oa/artifacts/北京悦海堂餐饮管理有限公司_发票金额1683.00元.pdf \
E2E_BASE_URL=https://oa.hyinda.com \
npx playwright test tests/e2e/manual/live-invoice-ocr.spec.ts --workers=1 --reporter=list
```
结果:
- `1 passed`
- 链路:真实 PDF 上传 -> 腾讯 OCR -> 进入可处理状态。
## 风险与后续
- 真实企业微信客户端内最终落点仍需人工确认。
- Vite manual chunk circular warning 仍存在,应单独开技术优化 Issue。
- 公网 live OCR 会在 smoke 账号下产生测试票据记录;后续如需要,可开清理或测试数据归档专项。