文件
hyb-oa/issues/2026-05-07_10-38-35-r104-public-deploy-visual-acceptance.csv
T

5.9 KiB

1IDTitleDescriptionAcceptanceTest_MethodToolsDev_StatusReview1_StatusRegression_StatusFilesDependenciesNotes
2A1R104 公网部署与验收合同把 R100-R103 的设计和报销主流程改动部署到公网试运行环境,并尽可能用自动化与视觉自动化完成验收。本 CSV 校验通过;本批只做部署、验证、证据归档和必要脚本/文档补充,不改业务状态机和数据模型。python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-07_10-38-35-r104-public-deploy-visual-acceptance.csv;业务流程影响:固定公网试运行验收范围。python|manualDONEDONEDONEissues/2026-05-07_10-38-35-r104-public-deploy-visual-acceptance.csv[]回滚路径:使用本次发布前备份和上一 trialrun tag 回滚;不提交密钥。
3A2本地发布前门禁在本地执行部署契约、Prisma、前端类型检查/构建、设计规则和关键 Playwright,确认当前 HEAD 可发布。本地 static gate、UI design 规则、R102/R103 Playwright 均通过;若 full-local 受环境限制,记录原因和替代覆盖。node deploy/trialrun/validate-env-contract.js;cd server && npm run prisma:validate;cd client && npm run typecheck && npm run build;node scripts/qa/check-ui-design-rules.mjs;cd client && npx playwright test tests/e2e/r102-reimbursement-main-flow.spec.ts tests/e2e/r103-cross-page-ui-consistency.spec.ts --reporter=list;业务流程:报销主流程与跨页面 UI 基线可回归。node|npm|playwrightDONEDONEDONEserver|client|scripts/qa|deploy/trialrun["A1"]Vite manual chunk 循环警告仍存在,已记录但不在本批修复。
4A3发布 tag 与公网部署为当前提交创建 trialrun tag,执行 deploy/trialrun/deploy.sh 同步到 118.89.77.218 的 /opt/hyb-oa-trialrun,并完成远端 /ready、external deps smoke、runtime smoke。存在 trialrun-20260507-01 tag;部署脚本成功;公网 /ready 成功;远端 runtime 与 external deps smoke 成功。git tag -a trialrun-20260507-01 -m 'trialrun release 20260507-01';bash deploy/trialrun/deploy.sh;curl -fsS https://oa.hyinda.com/ready;业务流程:最新前后端发布到公网试运行环境。git|ssh|rsync|docker|curlDONEDONEDONEdeploy/trialrun|remote:/opt/hyb-oa-trialrun["A2"]部署脚本默认不同步 .env;远端已有敏感环境变量作为事实源。
5A4公网 live smoke 与配置核验使用独立 smoke 账号执行公网只读 live smoke,并核验企业微信配置、移动默认 returnTo、OCR provider 当前策略。smoke-live 通过或明确缺少凭据;/api/auth/wecom/config 返回 ready;wecom login 302 的 state/returnTo 指向 /mobile;记录 OCR_PROVIDER 是 mock 还是 tencent。LIVE_EXPECT_WECOM_STATUS=ready bash scripts/qa/run-web-gates.sh smoke-live;curl -fsS https://oa.hyinda.com/api/auth/wecom/config;curl -I 'https://oa.hyinda.com/api/auth/wecom/login?returnTo=%2Fmobile';业务流程:公网登录、Portal、项目、公告、个人设置和企微入口只读可达。bash|curl|playwrightDONEDONEDONEscripts/qa|remote:/opt/hyb-oa-trialrun/deploy/trialrun/.env["A3"]smoke 账号凭据仅通过临时环境变量传入,未打印、未写入仓库;远端 OCR_PROVIDER=tencent。
6A5公网视觉自动化核验新增或运行公网视觉验收脚本,覆盖桌面登录页、手机企业微信 UA 登录页、/mobile 落点边界、票据/报销关键页面,并保存截图。公网视觉脚本通过;截图保存到 output/playwright/r104;页面不出现旧版口语化文案、黑色移动底栏、路由式标题或 UUID 主展示。cd client && R104_PUBLIC_BASE_URL=https://oa.hyinda.com npx playwright test tests/e2e/r104-public-visual-acceptance.spec.ts --reporter=list;业务流程:公网桌面与移动视口关键页面视觉可用。playwrightDONEDONEDONEclient/tests/e2e/r104-public-visual-acceptance.spec.ts|output/playwright/r104["A3","A4"]真实企业微信客户端已绑定直达 /mobile 仍需用户手机最终确认;自动化覆盖到 OAuth 跳转边界。
7A6真实 OCR 辅助复核若公网启用 Tencent OCR,使用既有真实发票 PDF 执行 live OCR 自动化;若公网仍为 mock OCR,则记录策略并保留本地 Tencent OCR 已通过证据。Tencent OCR 启用时 live OCR 通过;mock 策略时明确记录未做公网真实 OCR,后续单独开 OCR 切换 Issue。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;业务流程:票据上传→OCR→available。playwright|tencent-ocrDONEDONEDONEclient/tests/e2e/manual/live-invoice-ocr.spec.ts|artifacts/r70/live-ocr-batch-report.md["A4"]公网远端 OCR_PROVIDER=tencent,真实发票 PDF live OCR 通过;不把腾讯 secret 写入仓库。
8A7证据归档与中文提交归档 R104 验证报告,回填 CSV 状态,提交 Issue 和必要测试脚本/报告变更。存在 artifacts/r104-public-deploy-visual-acceptance/report.md;A1-A6 状态按实测回填;git diff --check 通过;中文提交引用 R104/A1-A7。python3 /home/shunli/.codex/skills/plan/scripts/validate_issues_csv.py issues/2026-05-07_10-38-35-r104-public-deploy-visual-acceptance.csv;git diff --check;git commit -m 'R104/A1-A7 公网部署与视觉验收';业务流程:发布证据可追溯。python|git|manualDONEDONEDONEissues/2026-05-07_10-38-35-r104-public-deploy-visual-acceptance.csv|artifacts/r104-public-deploy-visual-acceptance|client/tests/e2e/r104-public-visual-acceptance.spec.ts["A1","A2","A3","A4","A5","A6"]报告不得包含密码、token、secret、cookie;提交前执行敏感词扫描和 staged diff check。