From 336efcf62a47506ba883ee94c3981cb5a3f1ffd5 Mon Sep 17 00:00:00 2001 From: Qiu Date: Sat, 20 Jun 2026 00:13:27 +0800 Subject: [PATCH] action --- .gitea/workflows/deploy.yml | 71 +++++++------------------------------ 1 file changed, 12 insertions(+), 59 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 416c196..ee188cb 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -1,5 +1,5 @@ # ========================================== -# 纯 Bash 命令行部署工作流(适配自定义 SSH 端口) +# 基于 easingthemes/ssh-deploy Action 的部署工作流 # ========================================== name: Deploy Frontend @@ -16,61 +16,14 @@ jobs: - name: Checkout code uses: actions/checkout@v4 - - name: Execute Bash Deployment - run: | - # 🚨 [核心加速点]:免去 apt-get update,3秒内直接下载绿色版 rsync - if ! command -v rsync &> /dev/null; then - echo "📦 正在极速拉取静态编译版 rsync..." - mkdir -p ~/.local/bin - - # 从针对 Linux x86_64 静态编译的成品库直接下载单个文件 - curl -sSL https://repo.malkas.club/pub/rsync/rsync-3.2.7-x86_64 -o ~/.local/bin/rsync - - # 如果上面的小众源由于网络波动慢,这里提供一个极速国内加速镜像(Gitee 镜像)作为备用: - # curl -sSL https://gitee.com/quick-build-tools/rsync-static/raw/main/rsync-3.2.7-x86_64 -o ~/.local/bin/rsync - - chmod +x ~/.local/bin/rsync - export PATH="$HOME/.local/bin:$PATH" - fi - - # -------------- 1. 声明与解析变量 -------------- - SERVER_IP="${{ secrets.SSH_HOST }}" - SERVER_USER="${{ secrets.SSH_USER }}" - TARGET_DIR="${{ secrets.TARGET_DIR }}" - SSH_PORT="${{ secrets.SSH_PORT }}" - - : ${SERVER_IP:="192.168.31.185"} - : ${SERVER_USER:="root"} - : ${TARGET_DIR:="/data/apps/ci-cd/frontend"} - : ${SSH_PORT:="2222"} - - echo "🌐 准备部署至目标服务器: ${SERVER_USER}@${SERVER_IP}:${TARGET_DIR} (端口: ${SSH_PORT})" - - # -------------- 2. 初始化本地 SSH 环境 -------------- - mkdir -p ~/.ssh - chmod 700 ~/.ssh - - echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519 - chmod 600 ~/.ssh/id_ed25519 - - echo "🔍 正在扫描目标服务器主机指纹..." - ssh-keyscan -p "$SSH_PORT" -H "$SERVER_IP" >> ~/.ssh/known_hosts 2>/dev/null - - # -------------- 3. 执行 rsync 增量同步 -------------- - echo "🚀 开始传输增量文件..." - # 🚨 这里显式指定了我们刚刚下载的绿色版 rsync 路径 - ~/.local/bin/rsync -avz --delete \ - -e "ssh -i ~/.ssh/id_ed25519 -p $SSH_PORT" \ - --exclude=".git/" \ - --exclude=".gitea/" \ - --exclude=".github/" \ - ./ \ - "${SERVER_USER}@${SERVER_IP}:${TARGET_DIR}" - - # -------------- 4. 状态检查 -------------- - if [ $? -eq 0 ]; then - echo "✨ 部署成功!" - else - echo "❌ 部署失败,请检查密钥权限或局域网连通性。" - exit 1 - fi \ No newline at end of file + - name: Deploy via rsync + uses: easingthemes/ssh-deploy@v5 + 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/"