From dfa78890ab2db735fc58ee2aff01eb3635f392ec Mon Sep 17 00:00:00 2001 From: "Rodrigo Rodriguez (Pragmatismo)" Date: Tue, 31 Mar 2026 19:07:31 -0300 Subject: [PATCH] fix(ci): Use tar+zstd over ssh for binary deploy --- .forgejo/workflows/botserver.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.forgejo/workflows/botserver.yaml b/.forgejo/workflows/botserver.yaml index e3c38b5d..37e31d62 100644 --- a/.forgejo/workflows/botserver.yaml +++ b/.forgejo/workflows/botserver.yaml @@ -62,7 +62,7 @@ jobs: if: always() run: sudo cp /tmp/build.log /tmp/botserver-$(date +%Y%m%d-%H%M%S).log || true - - name: Deploy via rsync + - name: Deploy via ssh tar zstd run: | echo "=== Deploy started ===" echo "Checking binary exists..." @@ -71,15 +71,15 @@ jobs: ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 system "echo SSH OK && pkill -f botserver || true" echo "Removing old binary..." ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 system "rm -f /opt/gbo/bin/botserver && echo 'Old binary removed'" - echo "Starting rsync transfer..." - rsync -avz --progress -e "ssh -o StrictHostKeyChecking=no -o ConnectTimeout=30" /opt/gbo/ci/botserver/target/debug/botserver system:/opt/gbo/bin/botserver 2>&1 | tee /tmp/deploy.log - RSYNC_EXIT=${PIPESTATUS[0]} - echo "rsync exit code: $RSYNC_EXIT" - if [ "$RSYNC_EXIT" != "0" ]; then - echo "rsync FAILED with exit code $RSYNC_EXIT" + echo "Starting tar+zstd transfer..." + tar czf - -C /opt/gbo/ci/botserver/target/debug botserver | ssh -o StrictHostKeyChecking=no -o ConnectTimeout=30 -o ServerAliveInterval=15 system "tar xzf - -C /opt/gbo/bin && echo 'Transfer complete'" 2>&1 | tee /tmp/deploy.log + TRANSFER_EXIT=${PIPESTATUS[0]} + echo "Transfer exit code: $TRANSFER_EXIT" + if [ "$TRANSFER_EXIT" != "0" ]; then + echo "Transfer FAILED with exit code $TRANSFER_EXIT" exit 1 fi - echo "rsync SUCCESS, setting permissions..." + echo "Transfer SUCCESS, setting permissions..." ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 system "chmod +x /opt/gbo/bin/botserver && chown gbuser:gbuser /opt/gbo/bin/botserver && ls -lh /opt/gbo/bin/botserver" echo "Starting botserver..." ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 system "cd /opt/gbo/bin && sudo -u gbuser ./botserver --noconsole >> /opt/gbo/logs/error.log 2>&1 &"