From 10390fee42a96cbf8d6029e4d7e82c23223a8e25 Mon Sep 17 00:00:00 2001 From: SuperJacky6 Date: Sat, 8 Aug 2026 17:36:26 +0800 Subject: [PATCH] v10 --- .gitea/workflows/deploy-on-merge.yml | 183 +++++++++++++++++++++++---- 1 file changed, 156 insertions(+), 27 deletions(-) diff --git a/.gitea/workflows/deploy-on-merge.yml b/.gitea/workflows/deploy-on-merge.yml index 446649c..8cc843a 100644 --- a/.gitea/workflows/deploy-on-merge.yml +++ b/.gitea/workflows/deploy-on-merge.yml @@ -1,13 +1,17 @@ name: PR合并自动部署 + on: pull_request: - branches: [main] - types: [closed] + branches: + - main + types: + - closed jobs: deploy: if: github.event.pull_request.merged == true runs-on: ubuntu-latest + steps: - name: 配置SSH环境 run: | @@ -18,36 +22,161 @@ jobs: - name: 远程执行部署 run: | - ssh -i ~/.ssh/deploy_key ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }} </dev/null; then + + kill -HUP "$MASTER_PID" + + echo "✅ Gunicorn 已发送 HUP,优雅重载完成" - # 获取gunicorn master进程,发送HUP优雅重载 - MASTER_PID=\$(pgrep -f "gunicorn_conf.py" -P 1) - echo "Detected gunicorn master PID: \$MASTER_PID" - if [ -n "\$MASTER_PID" ]; then - kill -HUP "\$MASTER_PID" - echo "✅ Graceful reload signal sent" else - echo "⚠️ Gunicorn master not found, skip reload" + + echo "⚠️ gunicorn.pid 中的进程不存在" + fi -EOF \ No newline at end of file + + else + + # PID 文件不存在时备用查找 + MASTER_PID=$(pgrep -f "gunicorn.*gunicorn_conf.py" | head -n 1 || true) + + if [ -n "$MASTER_PID" ]; then + + echo "检测到 Gunicorn PID: $MASTER_PID" + + kill -HUP "$MASTER_PID" + + echo "✅ Gunicorn 已发送 HUP,优雅重载完成" + + else + + echo "⚠️ 未找到 Gunicorn 进程,跳过重载" + + fi + + fi + + echo "========================================" + echo "✅ 部署完成" + echo "========================================" + + EOF \ No newline at end of file