# INP2P 部署校验规范(强制) > 目标:每次新部署后,必须自动校验“服务端/客户端版本一致 + 无残留旧进程/旧二进制”。 ## 1. 版本控制 - 项目版本源:`VERSION` - 构建时自动注入:`Version / GitCommit / BuildTime / GoVersion` - 约束:`bin/inp2ps` 与 `bin/inp2pc` 的 `-version` 输出必须等于 `VERSION`。 ## 2. 校验脚本 - 脚本:`scripts/deploy-check.sh` - Make 入口:`make verify-deploy` 脚本会检查: 1) 二进制版本是否匹配 `VERSION` 2) `inp2ps.service` 是否 active 3) `inp2ps.service` 的主进程是否运行自 `bin/inp2ps` 4) 是否存在残留 inp2p 进程(除当前服务主 PID 外) 5) 是否存在残留旧二进制(`*.old*/*.new*`、根目录历史二进制) 输出: - 报告目录:`run/deploy-check/` - 报告文件:`deploy-check-YYYYmmdd-HHMMSS.txt` - 失败时脚本返回非 0(可用于 CI/发布门禁) ## 3. 标准发布流程(建议) ```bash cd /root/.openclaw/workspace/inp2p # 1) 编译(自动读取 VERSION) make build # 2) 部署(替换后重启服务) systemctl restart inp2ps.service # 3) 强制校验(必须通过) make verify-deploy ``` ## 4. 失败处理原则 - 任一校验 FAIL:视为发布未完成 - 必须先清理残留再进入可用状态 - 建议在变更记录中附上本次校验报告路径