pomotodo后端发布SOP

pomotodo 后端发布 SOP(本地打包 + 上传服务器)

数字资产清单 拆出,记录 pomotodo 发布流程细节。
适用仓库:/Users/liwenye/IdeaProjects/pomotodo@gitee
目标服务器:root@120.78.83.144


一、发布前运行时变量检查(必须通过)

1
ssh root@120.78.83.144 'for k in JWT_SECRET DB_USER DB_PASSWORD REDIS_PASSWORD; do grep -Eq "^${k}=.+" /usr/local/pomotodo/.runtime.env || { echo "MISSING:${k}"; exit 1; }; done; if grep -q "^MANAGEMENT_HEALTH_MAIL_ENABLED=false" /usr/local/pomotodo/.runtime.env || (grep -Eq "^MAIL_USERNAME=.+" /usr/local/pomotodo/.runtime.env && grep -Eq "^MAIL_PASSWORD=.+" /usr/local/pomotodo/.runtime.env && grep -Eq "^MAIL_PORT=.+" /usr/local/pomotodo/.runtime.env); then echo "runtime env check passed"; else echo "mail health config missing"; exit 1; fi'

二、本地打包并自动上传部署(首选)

1
2
cd /Users/liwenye/IdeaProjects/pomotodo@gitee
./scripts/deploy/deploy-local.sh

说明:

  1. 该脚本流程为:本地 mvn clean package -> 上传 jar 到服务器 /tmp/ -> 远程备份/停服/替换/启服 -> 健康检查。
  2. 默认为了适配当前项目配置,跳测参数走 -DskipUTs=true
  3. 当前部署产物路径:pomotodo-app/target/pomotodo-1.0-SNAPSHOT.jar

三、常用变体命令

1
2
3
4
cd /Users/liwenye/IdeaProjects/pomotodo@gitee
./scripts/deploy/deploy-local.sh --skip-build # 仅上传已有 jar
./scripts/deploy/deploy-local.sh --dry-run # 只构建不上传不部署
./scripts/deploy/deploy-local.sh --run-tests # 构建时执行测试

四、发布后验证(必须)

1
ssh root@120.78.83.144 "curl -s -o /tmp/health.json -w '%{http_code}' http://127.0.0.1:18080/actuator/health && echo && cat /tmp/health.json"

期望结果:HTTP 状态码 200,且返回健康 JSON。

五、健康检查失败时快速排查

1
ssh root@120.78.83.144 "grep -nE 'DataSource health|Redis health|Mail health|Access denied|NOAUTH|AuthenticationFailedException' /usr/local/pomotodo/app.log | tail -n 80"

六、备用方案(仅当本地部署不可用)

1
ssh root@120.78.83.144 "cd /root && ./build.sh"

备注:

  1. 服务器只有 2 GB 内存,默认不建议在服务器直接 Maven 构建。
  2. 详细故障处理文档:/Users/liwenye/IdeaProjects/pomotodo@gitee/docs/ops/2026-02-25-release-runtime-env-runbook.md