From 4f495e605ae5d2e714d06a57501dcb2d0150d159 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BC=96=E7=A0=81=E7=8C=BF?= Date: Sun, 5 Oct 2025 04:25:10 +0800 Subject: [PATCH] 333 --- .gitea/workflows/test.yml | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/test.yml b/.gitea/workflows/test.yml index 34d7c1a..1eedc57 100644 --- a/.gitea/workflows/test.yml +++ b/.gitea/workflows/test.yml @@ -31,26 +31,37 @@ jobs: # 步骤 2: 在管理机拉取最新代码并部署 - name: 拉取代码并执行部署 run: | - ssh ${{ secrets.USERNAME }}@${{ secrets.HOST }} << 'EOF' - # 定义项目目录(管理机上的代码存放路径,需提前创建) - PROJECT_DIR="/home/bmy/gitea_actions" + # 1. 在 Runner 上安装 sshpass + sudo apt-get update && sudo apt-get install -y sshpass + + # 2. 使用 sshpass 执行远程命令 + # -o StrictHostKeyChecking=no: 自动接受未知的主机密钥,避免 "Host key verification failed" 错误 + # sshpass -p '密码' ssh ...: 通过 sshpass 提供密码 + # -T: 禁用伪终端分配,避免相关警告 + sshpass -p '${{ secrets.PASSWORD }}' ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${{ secrets.USERNAME }}@${{ secrets.HOST }} << 'EOF' + # --- 以下为在管理机上执行的脚本 --- + + # 定义项目目录(管理机上的代码存放路径) + PROJECT_DIR="/home/bmygitea_actions" # 进入项目目录,若不存在则克隆仓库 if [ ! -d "$PROJECT_DIR" ]; then echo "项目目录不存在,克隆仓库..." + # 假设管理机已配置好 Gitea 的访问权限 (如部署密钥) git clone ${{ gitea.repository }} $PROJECT_DIR cd $PROJECT_DIR else echo "拉取最新代码..." cd $PROJECT_DIR - # 确保工作区干净(可选,根据需求调整) git checkout main git pull origin main fi - # 执行部署脚本(包含 Docker 构建和 Swarm 部署) + # 执行部署脚本 pwd - ls -al + ls + + # --- 远程脚本结束 --- EOF # 步骤1:输出事件信息 - run: echo "🎉 该作业由 ${{ gitea.event_name }} 事件自动触发。"