持续集成:加固交付分支部署与健康检查
This commit is contained in:
1 parent
033ffe5742
commit
08d9a00a0e
2 files changed
+54
-5
No files matched your search
+2
-2
@@ -22,7 +22,7 @@ build_backend:
|
|||||||
- export PATH=/data2/wzb/tools/maven/bin:$JAVA_HOME/bin:$PATH
|
- export PATH=/data2/wzb/tools/maven/bin:$JAVA_HOME/bin:$PATH
|
||||||
- javac -version
|
- javac -version
|
||||||
- cd RuoYi-Vue
|
- cd RuoYi-Vue
|
||||||
- mvn clean package -DskipTests
|
- mvn clean package
|
||||||
- echo "=== 后端编译成功 ==="
|
- echo "=== 后端编译成功 ==="
|
||||||
artifacts:
|
artifacts:
|
||||||
expire_in: 2 days
|
expire_in: 2 days
|
||||||
@@ -57,7 +57,7 @@ deploy_production:
|
|||||||
tags:
|
tags:
|
||||||
- railway-deploy
|
- railway-deploy
|
||||||
rules:
|
rules:
|
||||||
- if: '$CI_COMMIT_BRANCH'
|
- if: '$CI_COMMIT_BRANCH == "feat/cicd-pipeline"'
|
||||||
script:
|
script:
|
||||||
- echo "=== 开始部署应用 ==="
|
- echo "=== 开始部署应用 ==="
|
||||||
# 部署前端静态资源到发布目录
|
# 部署前端静态资源到发布目录
|
||||||
|
|||||||
+52
-3
@@ -19,6 +19,20 @@ DB_URL="jdbc:kingbase8://192.168.139.218:4321/training?currentSchema=public,sys_
|
|||||||
|
|
||||||
mkdir -p "$BACKEND_DIR" "$FRONTEND_DIR" "$LOG_DIR"
|
mkdir -p "$BACKEND_DIR" "$FRONTEND_DIR" "$LOG_DIR"
|
||||||
|
|
||||||
|
echo "=== 0. 检查运行时安全配置 ==="
|
||||||
|
|
||||||
|
if [ -z "${TRAIN_STUDENT_IDENTITY_ENCRYPTION_KEY:-}" ]; then
|
||||||
|
echo "错误:缺少 TRAIN_STUDENT_IDENTITY_ENCRYPTION_KEY"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "${TRAIN_STUDENT_IDENTITY_HASH_KEY:-}" ]; then
|
||||||
|
echo "错误:缺少 TRAIN_STUDENT_IDENTITY_HASH_KEY"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "运行时安全配置存在性检查通过"
|
||||||
|
|
||||||
echo "=== 1. 检查并停止当前用户的旧后端进程 ==="
|
echo "=== 1. 检查并停止当前用户的旧后端进程 ==="
|
||||||
TARGET_PID=""
|
TARGET_PID=""
|
||||||
if [ -f "$PID_FILE" ]; then
|
if [ -f "$PID_FILE" ]; then
|
||||||
@@ -61,15 +75,42 @@ echo "后端已在后台启动,PID: $NEW_PID"
|
|||||||
echo "实时日志: $LOG_PATH"
|
echo "实时日志: $LOG_PATH"
|
||||||
|
|
||||||
echo "等待服务启动与健康自检..."
|
echo "等待服务启动与健康自检..."
|
||||||
|
HEALTH_OK=0
|
||||||
|
|
||||||
for i in {1..35}; do
|
for i in {1..35}; do
|
||||||
RES=$(curl -s "http://127.0.0.1:${SERVER_PORT}/captchaImage" 2>/dev/null)
|
RES=$(curl -s "http://127.0.0.1:${SERVER_PORT}/captchaImage" 2>/dev/null)
|
||||||
|
|
||||||
if echo "$RES" | grep -q '"code":200'; then
|
if echo "$RES" | grep -q '"code":200'; then
|
||||||
|
HEALTH_OK=1
|
||||||
echo "后端健康检查通过!验证码接口返回正常!服务已在端口 $SERVER_PORT 成功运行!"
|
echo "后端健康检查通过!验证码接口返回正常!服务已在端口 $SERVER_PORT 成功运行!"
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if ! kill -0 "$NEW_PID" 2>/dev/null; then
|
||||||
|
echo "错误:后端进程在启动阶段提前退出,请检查 $LOG_PATH"
|
||||||
|
rm -f "$PID_FILE"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
sleep 2
|
sleep 2
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [ "$HEALTH_OK" -ne 1 ]; then
|
||||||
|
echo "错误:后端健康检查超时,请检查 $LOG_PATH"
|
||||||
|
|
||||||
|
if kill -0 "$NEW_PID" 2>/dev/null; then
|
||||||
|
kill -15 "$NEW_PID" 2>/dev/null || true
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
if kill -0 "$NEW_PID" 2>/dev/null; then
|
||||||
|
kill -9 "$NEW_PID" 2>/dev/null || true
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -f "$PID_FILE"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
echo "=== 3. 检查并启动/重载前端 Web 服务 (Nginx 8082) ==="
|
echo "=== 3. 检查并启动/重载前端 Web 服务 (Nginx 8082) ==="
|
||||||
NGINX_DIR="$DEPLOY_ROOT/nginx"
|
NGINX_DIR="$DEPLOY_ROOT/nginx"
|
||||||
NGINX_CONF="$NGINX_DIR/nginx.conf"
|
NGINX_CONF="$NGINX_DIR/nginx.conf"
|
||||||
@@ -121,12 +162,20 @@ http {
|
|||||||
NGINX_EOF
|
NGINX_EOF
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if pgrep -u $(whoami) -f "nginx: master" >/dev/null; then
|
if pgrep -u "$(whoami)" -f "nginx: master" >/dev/null; then
|
||||||
echo "平滑重载前端 Nginx 服务..."
|
echo "平滑重载前端 Nginx 服务..."
|
||||||
/usr/sbin/nginx -c "$NGINX_CONF" -s reload
|
|
||||||
|
if ! /usr/sbin/nginx -c "$NGINX_CONF" -s reload; then
|
||||||
|
echo "错误:Nginx 平滑重载失败"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
echo "启动前端 Nginx 服务..."
|
echo "启动前端 Nginx 服务..."
|
||||||
/usr/sbin/nginx -c "$NGINX_CONF"
|
|
||||||
|
if ! /usr/sbin/nginx -c "$NGINX_CONF"; then
|
||||||
|
echo "错误:Nginx 启动失败"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "=== 部署全部就绪!前端访问地址: http://192.168.139.230:8082 ==="
|
echo "=== 部署全部就绪!前端访问地址: http://192.168.139.230:8082 ==="
|
||||||
Reference in new issue
Block a user