From 3f51039121d4ee35555f9f66fb785278b9876796 Mon Sep 17 00:00:00 2001 From: Qiu Date: Sat, 20 Jun 2026 00:32:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8D=E4=BD=BF=E7=94=A8=E9=95=9C=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/deploy.yml | 53 ++++++++++++++++++++++++++++--------- 1 file changed, 41 insertions(+), 12 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 593f312..27d85c0 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -1,5 +1,5 @@ # ========================================== -# 基于 easingthemes/ssh-deploy Action 的部署工作流 +# 纯 Bash SCP 部署工作流(零外部 Action 依赖) # ========================================== name: Deploy Frontend @@ -16,14 +16,43 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Deploy via rsync - uses: easingthemes/ssh-deploy@v4 - env: - SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} - ARGS: "-avz --delete" - SOURCE: "./" - REMOTE_HOST: ${{ secrets.SSH_HOST }} - REMOTE_USER: ${{ secrets.SSH_USER }} - REMOTE_PORT: ${{ secrets.SSH_PORT }} - TARGET: ${{ secrets.TARGET_DIR }} - EXCLUDE: ".git/, .gitea/, .github/" + - name: Deploy via SCP + run: | + SERVER_HOST="${{ secrets.SSH_HOST }}" + SERVER_USER="${{ secrets.SSH_USER }}" + SERVER_PORT="${{ secrets.SSH_PORT }}" + TARGET_DIR="${{ secrets.TARGET_DIR }}" + + : ${SERVER_HOST:="192.168.31.185"} + : ${SERVER_USER:="root"} + : ${SERVER_PORT:="2222"} + : ${TARGET_DIR:="/data/apps/ci-cd/frontend"} + + echo "🌐 部署至 ${SERVER_USER}@${SERVER_HOST}:${TARGET_DIR} (端口: ${SERVER_PORT})" + + # 配置 SSH 密钥 + mkdir -p ~/.ssh + chmod 700 ~/.ssh + echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519 + chmod 600 ~/.ssh/id_ed25519 + + # 扫描主机指纹 + ssh-keyscan -p "${SERVER_PORT}" -H "${SERVER_HOST}" >> ~/.ssh/known_hosts 2>/dev/null + + # 确保目标目录存在 + ssh -i ~/.ssh/id_ed25519 -p "${SERVER_PORT}" \ + "${SERVER_USER}@${SERVER_HOST}" \ + "mkdir -p ${TARGET_DIR}" + + # SCP 上传(排除 .git .gitea .github) + echo "🚀 开始上传文件..." + scp -i ~/.ssh/id_ed25519 -P "${SERVER_PORT}" -r \ + ./* \ + "${SERVER_USER}@${SERVER_HOST}:${TARGET_DIR}/" + + if [ $? -eq 0 ]; then + echo "✨ 部署成功!" + else + echo "❌ 部署失败" + exit 1 + fi