name: BotServer CI on: push: branches: [main] jobs: build: runs-on: gbo env: CARGO_TARGET_DIR: /opt/gbo/work/target RUSTC_WRAPPER: "" PATH: /home/gbuser/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SYSTEM_HOST: ${{ vars.SYSTEM_HOST }} SYSTEM_USER: gbuser steps: - name: Build run: | cd /opt/gbo/work/botserver git reset --hard HEAD && git clean -fd git pull git submodule update --init --recursive botlib botserver cargo build -p botserver - name: Deploy to Stage run: | BINARY=/opt/gbo/work/target/debug/botserver ssh -o StrictHostKeyChecking=no ${SYSTEM_USER}@${SYSTEM_HOST} "sudo systemctl stop botserver 2>/dev/null; sudo pkill -x botserver 2>/dev/null; sleep 1" scp -o StrictHostKeyChecking=no "$BINARY" ${SYSTEM_USER}@${SYSTEM_HOST}:/opt/gbo/bin/botserver-new ssh -o StrictHostKeyChecking=no ${SYSTEM_USER}@${SYSTEM_HOST} "sudo mv /opt/gbo/bin/botserver-new /opt/gbo/bin/botserver && sudo chmod +x /opt/gbo/bin/botserver && sudo systemctl enable botserver && sudo systemctl start botserver" sleep 10 ssh -o StrictHostKeyChecking=no ${SYSTEM_USER}@${SYSTEM_HOST} "curl -sf http://localhost:8080/health && echo 'BotServer Deployed' || echo 'Failed'"