加部署前代码门禁: scripts/check.sh + deploy-prod.sh 接入

单人维护 + Gitea 无 runner, CI 文件无执行环境。改用部署时刻门禁: deploy-prod.sh 构建镜像前在本地调 check.sh 跑全量检查, 失败即中止部署。

scripts/check.sh (新增):
- 后端: go vet + go build + go test (串行 -p 1 避免 SQLite 并发)
- 前端: npm run check (prettier + eslint --max-warnings=0 + vue-tsc) + npm run build
- 支持 --skip-backend/--skip-frontend/--skip-tests 局部调试
- 每步报耗时, 任一失败退出非零

deploy-prod.sh 接入:
- 构建镜像前 (NO_BUILD=0) 自动调 check.sh, 失败中止部署
- 本地缺 go/npm 时跳过并告警 (部署机可能只有 docker), 不硬失败
- --skip-check 显式跳过 (不推荐)

README 补 "代码门禁" 章节。

验证: 全量 check.sh 跑通 (~46s, 5 步全绿); 临时注入 lint 错误确认能拦住。
This commit is contained in:
yml
2026-06-14 16:30:58 +08:00
parent f410be3797
commit 64f7ed3753
3 changed files with 164 additions and 0 deletions
+10
View File
@@ -40,6 +40,16 @@ npm install
npm run dev
```
## 代码门禁
提交前或部署前在本地执行全量检查,覆盖后端 `go vet` / `go build` / `go test` 与前端 `prettier` / `eslint` / `typecheck` / `vite build`
```bash
./scripts/check.sh
```
`./scripts/deploy-prod.sh` 在构建镜像前会自动调用 `check.sh`(本地有 `go``npm` 时)。检查未通过会中止部署;确需跳过用 `--skip-check`(不推荐)。`check.sh` 也支持 `--skip-backend``--skip-frontend``--skip-tests` 做局部调试。
## 开发态短信与实名
- 后端日志默认同时输出到控制台和 `backend/logs/app-YYYY-MM-DD.log`,按北京时间自动按天切分;可通过 `LOG_LEVEL=debug|info|warn|error` 调整级别。