2.4 KiB
2.4 KiB
重建触发与错误码约定
本文档定义仓库对外提供的统一重建入口,供 AstrBot、cron 或手工执行复用。
统一入口
npm run rebuild
该命令会顺序执行:
npm run content:syncnpm run build
当前还不包含部署步骤;后续如接入部署,可继续扩展到同一入口里。
适合 AstrBot 的调用方式
AstrBot 只需要做三件事:
- 定时触发
npm run rebuild - 读取进程退出码
- 从输出中提取
REBUILD_RESULT ...这一行,作为结构化结果
推荐通知内容:
- 成功:开始时间、结束时间、总耗时
- 失败:失败阶段、错误码、错误符号、最后几行日志
结构化输出
命令结束前会输出一行 JSON:
REBUILD_RESULT {"ok":true,"stage":"build","code":0,"symbol":"SUCCESS",...}
字段说明:
ok: 是否成功stage: 失败或结束所在阶段,当前可能为sync/build/bootstrapcode: 退出码symbol: 退出码对应的文本符号startedAt: 整体开始时间finishedAt: 整体结束时间durationMs: 整体耗时failedStepDurationMs: 当前失败步骤耗时;成功时为最后一步耗时logTail: 最后若干行日志,便于 AstrBot 通知时直接带上排障信息
错误码
成功
| Code | Symbol | 含义 |
|---|---|---|
| 0 | SUCCESS |
全部成功 |
同步阶段
| Code | Symbol | 含义 |
|---|---|---|
| 10 | SYNC_FAILED |
通用同步失败 |
| 11 | GITEA_SYNC_FAILED |
Gitea 同步失败 |
| 12 | SEAFILE_SYNC_FAILED |
Seafile 同步失败 |
| 13 | SCHEMA_VALIDATION_FAILED |
JSON/Schema 校验失败 |
构建阶段
| Code | Symbol | 含义 |
|---|---|---|
| 20 | BUILD_FAILED |
Astro 构建失败 |
部署阶段(预留)
| Code | Symbol | 含义 |
|---|---|---|
| 30 | DEPLOY_FAILED |
静态产物部署失败 |
运行阶段
| Code | Symbol | 含义 |
|---|---|---|
| 40 | CONFIG_INVALID |
运行环境缺少必要命令或配置异常 |
| 50 | UNKNOWN_ERROR |
未归类异常 |
手动补跑
本地或服务器上都可以直接执行:
npm run rebuild
如果只是想单独排查同步阶段,也可以先运行:
npm run content:sync
建议的 AstrBot 判定逻辑
- 退出码
0:发送成功通知 - 非
0:发送失败告警 - 优先展示:
symbolstagecodelogTail