89 行
2.1 KiB
Markdown
89 行
2.1 KiB
Markdown
# Developer Workflow
|
||
|
||
## Working model
|
||
|
||
本项目采用“阶段可停可跑”的开发方式。任何较大的改动都应满足:
|
||
|
||
- 阶段结束即可本地启动
|
||
- 阶段结束即可执行验证命令
|
||
- 阶段结束即可提交本地 commit
|
||
|
||
## Recommended loop
|
||
|
||
```bash
|
||
set -a && source .env && set +a && pnpm exec drizzle-kit migrate
|
||
pnpm check
|
||
pnpm test
|
||
pnpm test:go
|
||
pnpm build
|
||
pnpm test:e2e
|
||
```
|
||
|
||
全部通过后再提交:
|
||
|
||
```bash
|
||
git status
|
||
git add .
|
||
git commit -m "..."
|
||
```
|
||
|
||
## Interrupt-safe development
|
||
|
||
如果业务开发中被打断,恢复时按以下顺序:
|
||
|
||
1. `git status` 查看当前工作树
|
||
2. 若 schema 或环境变量改动过,先执行 `set -a && source .env && set +a && pnpm exec drizzle-kit migrate`
|
||
3. 再跑 `pnpm check`
|
||
4. 再跑 `pnpm test`
|
||
5. 若涉及媒体链路,再跑 `pnpm test:go`
|
||
6. 最后跑 `pnpm test:e2e`
|
||
7. 若当前分支包含部署改动,再执行 `docker compose config` 与基础 smoke check
|
||
|
||
不要在一半状态下长时间保留“能编译但主流程不可用”的改动。
|
||
|
||
## Deployment-safe checks
|
||
|
||
涉及 compose、nginx、数据库或媒体服务调整时,提交前至少确认:
|
||
|
||
- `docker compose config` 可通过
|
||
- `docker compose ps` 中 `app`、`db`、`media`、`worker` 正常
|
||
- 一次性迁移容器 `migrate` 成功退出
|
||
- `curl -I https://te.hao.work/` 返回 `200`
|
||
- `curl http://127.0.0.1:8081/media/health` 返回 `{"ok":true,...}`
|
||
|
||
## Media-related changes
|
||
|
||
修改录制链路时至少检查:
|
||
|
||
- `client/src/lib/media.ts`
|
||
- `client/src/pages/Recorder.tsx`
|
||
- `client/src/pages/LiveCamera.tsx`
|
||
- `media/main.go`
|
||
- `server/routers.ts`
|
||
- `server/_core/mediaProxy.ts`
|
||
|
||
媒体改动完成后至少验证:
|
||
|
||
- 会话创建
|
||
- marker 写入
|
||
- finalize
|
||
- 视频库登记
|
||
- 实时分析停止后的会话保存和训练数据回写
|
||
|
||
## Documentation discipline
|
||
|
||
以下改动必须同步更新文档:
|
||
|
||
- 新增脚本或验证入口
|
||
- 新增或变更媒体 API
|
||
- 部署拓扑变化
|
||
- 功能能力边界变化
|
||
- 新增自动化测试覆盖范围
|
||
|
||
至少更新:
|
||
|
||
- `README.md`
|
||
- `docs/testing.md`
|
||
- `docs/verified-features.md`
|
||
- 相关专题文档
|