From 72bc18b7dec608b96912375bec116b378c701edb Mon Sep 17 00:00:00 2001 From: "Rodrigo Rodriguez (Pragmatismo)" Date: Fri, 3 Apr 2026 20:35:38 -0300 Subject: [PATCH] fix(ci): separate deploy steps - backup, kill, transfer, start --- .forgejo/workflows/botserver.yaml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.forgejo/workflows/botserver.yaml b/.forgejo/workflows/botserver.yaml index 95223efc..b76c5de8 100644 --- a/.forgejo/workflows/botserver.yaml +++ b/.forgejo/workflows/botserver.yaml @@ -83,17 +83,21 @@ jobs: echo "=== Deploy started ===" echo "Step 1: Checking binary..." ls -lh /opt/gbo/data/botserver/target/debug/botserver - echo "Step 2: Transferring binary..." - timeout 60 tar cf - -C /opt/gbo/data/botserver/target/debug botserver | gzip -1 | timeout 60 ssh $SSH_ARGS system "gzip -d | tar xf - -C /opt/gbo/bin && chmod +x /opt/gbo/bin/botserver && chown gbuser:gbuser /opt/gbo/bin/botserver && echo 'Transfer complete'" - echo "Step 3: Restarting botserver..." - timeout 30 ssh $SSH_ARGS system "systemctl restart botserver 2>/dev/null; sleep 2; cd /opt/gbo/bin && nohup ./botserver --noconsole > /opt/gbo/logs/stdout.log 2>&1 & disown; echo 'Botserver started'" || echo "Restart command timed out, trying anyway..." + echo "Step 2: Backing up old binary..." + ssh $SSH_ARGS system "cp /opt/gbo/bin/botserver /tmp/botserver.bak 2>/dev/null || echo 'No previous binary to backup'" + echo "Step 3: Killing old botserver..." + ssh $SSH_ARGS system "killall botserver 2>/dev/null || true" + echo "Step 4: Transferring new binary..." + tar cf - -C /opt/gbo/data/botserver/target/debug botserver | gzip -1 | ssh $SSH_ARGS system "gzip -d | tar xf - -C /opt/gbo/bin && chmod +x /opt/gbo/bin/botserver && chown gbuser:gbuser /opt/gbo/bin/botserver && echo 'Transfer complete'" + echo "Step 5: Starting botserver..." + ssh $SSH_ARGS system "cd /opt/gbo/bin && nohup ./botserver --noconsole > /opt/gbo/logs/stdout.log 2>&1 & disown && echo 'Botserver started'" echo "=== Deploy completed ===" - name: Verify botserver started run: | sleep 30 SSH_ARGS="-i /home/gbuser/.ssh/id_ed25519 -o StrictHostKeyChecking=no -o ConnectTimeout=5 -o ServerAliveInterval=5 -o ServerAliveCountMax=2 -o BatchMode=yes" - timeout 20 ssh $SSH_ARGS system "pgrep -f botserver >/dev/null && echo 'OK: botserver is running' || echo 'WARNING: botserver may still be starting'" || echo "Could not verify, check manually" + ssh $SSH_ARGS system "pgrep -f botserver >/dev/null && echo 'OK: botserver is running' || echo 'WARNING: botserver may still be starting'" || echo "Could not verify, check manually" - name: Save deploy log if: always()