From 0e395fef324849cbf95167928a9039bf9a860dbe Mon Sep 17 00:00:00 2001 From: huertian Date: Wed, 8 Jan 2025 20:06:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/deploy.yml | 41 +++++++++++++++++++++++++------------ 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 1b40891..1ae278c 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -3,7 +3,7 @@ name: 自动部署 Spring Boot 项目到 CentOS 🚀 on: push: branches: - - main # 当代码推送到 main 分支时触发部署 + - main jobs: deploy: @@ -18,32 +18,47 @@ jobs: - name: ☕ 设置 Java 环境 uses: actions/setup-java@v3 with: - java-version: "17" # 替换为您的 Java 版本 + java-version: "17" distribution: "temurin" # 3️⃣ 构建 Spring Boot 项目 - name: 📦 构建 Spring Boot 项目 run: | ./mvnw clean package -DskipTests - ls target/*.jar + ls -lh target/ - # 4️⃣ 部署到服务器 + # 4️⃣ 获取 JAR 文件路径 + - name: 获取 JAR 文件路径 + id: jar_path + run: echo "JAR_FILE=$(ls target/*.jar)" >> $GITHUB_ENV + + # 5️⃣ 确保目标目录存在 + - name: 🗂️ 确保远程路径 + run: ssh root@8.137.89.177 "mkdir -p /huertian && chmod 755 /huertian" + + # 6️⃣ 上传和部署 - name: 🚀 部署到服务器 env: - DEPLOY_KEY: ${{ secrets.DEPLOY_KEY }} # SSH 私钥 + DEPLOY_KEY: ${{ secrets.DEPLOY_KEY }} run: | - # 配置 SSH 🔑 echo "$DEPLOY_KEY" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa - ssh-keyscan -H $server_ip >> ~/.ssh/known_hosts + ssh-keyscan -H 8.137.89.177 >> ~/.ssh/known_hosts - # 上传 JAR 包到服务器 📤 - scp target/*.jar $user@$server_ip:/jinduguanli/app.jar + # 上传文件 + scp ${{ env.JAR_FILE }} root@8.137.89.177:/huertian/app.jar - # 在服务器上重启应用 🔄 - ssh $user@$server_ip << 'EOF' - cd /jinduguanli + # 校验文件完整性 + ssh root@8.137.89.177 "sha256sum /huertian/app.jar" + + # 重启服务 + ssh root@8.137.89.177 << 'EOF' + cd /huertian pkill -f 'java -jar' || true - nohup java -jar app.jar --spring.config.location=/huertian/application.yml> /huertian/log/app.log 2>&1 & + nohup java -jar app.jar --spring.config.location=/huertian/application.yml >> /huertian/log/app_$(date +%F).log 2>&1 & exit EOF + + # 7️⃣ 检查启动日志 + - name: 检查启动日志 + run: ssh root@8.137.89.177 "tail -n 20 /huertian/log/app_$(date +%F).log"