From 7a555477424b988f670474e498e1bf3a95d5df89 Mon Sep 17 00:00:00 2001 From: voson Date: Tue, 3 Feb 2026 13:38:37 +0800 Subject: [PATCH] ci: deploy with tar over ssh (no rsync required) --- .gitea/workflows/deploy.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 7839c0a..3190e53 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -51,7 +51,9 @@ jobs: mkdir -p ~/.ssh ssh-keyscan -p "${{ secrets.DEPLOY_SSH_PORT }}" -H "${{ secrets.DEPLOY_SSH_HOST }}" >> ~/.ssh/known_hosts - - name: Deploy via rsync + - name: Deploy via tar over SSH if: ${{ secrets.DEPLOY_SSH_KEY != '' }} run: | - rsync -az --delete -e "ssh -i ~/.ssh/deploy_key -p ${{ secrets.DEPLOY_SSH_PORT }}" dist/ "${{ secrets.DEPLOY_SSH_USER }}@${{ secrets.DEPLOY_SSH_HOST }}:${{ secrets.DEPLOY_PATH }}/" + tar -C dist -czf - . | \ + ssh -i ~/.ssh/deploy_key -p "${{ secrets.DEPLOY_SSH_PORT }}" "${{ secrets.DEPLOY_SSH_USER }}@${{ secrets.DEPLOY_SSH_HOST }}" \ + "bash -lc 'set -euo pipefail; tmp=\"${{ secrets.DEPLOY_PATH }}.tmp\"; rm -rf \"$tmp\"; mkdir -p \"$tmp\"; tar -xzf - -C \"$tmp\"; rm -rf \"${{ secrets.DEPLOY_PATH }}\"; mv \"$tmp\" \"${{ secrets.DEPLOY_PATH }}\"'"