diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 2b4e6e5..2aa58e8 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -20,29 +20,41 @@ jobs: if [ -z "$PASSWORD" ]; then echo "Error: SERVER_PASSWORD is not set!"; exit 1; fi echo "Secrets are correctly loaded." - - name: SSH Remote Commands - uses: docker://ghcr.io/appleboy/ssh-action:v1.0.0 - with: - host: ${{ secrets.SERVER_HOST }} - username: ${{ secrets.SERVER_USERNAME }} - password: ${{ secrets.SERVER_PASSWORD }} - port: 22 - script: | - # 进入项目目录 + - name: Install SSH Tools + run: | + if command -v apk &> /dev/null; then + apk add --no-cache openssh-client sshpass + elif command -v apt-get &> /dev/null; then + apt-get update -y && apt-get install -y sshpass openssh-client + else + echo "Unknown package manager. Checking if sshpass is already installed..." + fi + if ! command -v sshpass &> /dev/null; then echo "Error: sshpass not found and installation failed."; exit 1; fi + + - name: Deploy via SSH + env: + SSHPASS: ${{ secrets.SERVER_PASSWORD }} + run: | + sshpass -e ssh -o StrictHostKeyChecking=no -p 22 ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }} << 'EOF' + set -e + echo "📂 Entering project directory..." cd /root/V2_micropython/ - # 拉取最新代码 - echo "Pulling latest code..." + echo "⬇️ Pulling latest code..." git pull - # 进入 websocket_server 目录 + echo "📂 Entering websocket_server directory..." cd websocket_server - # 重启服务 - echo "Restarting Docker Compose services..." - docker compose down - docker compose up -d - - # 检查部署状态 - echo "Checking deployment status..." - docker compose ps + echo "🔄 Restarting Docker services..." + if docker compose version &> /dev/null; then + docker compose down + docker compose up -d + docker compose ps + else + docker-compose down + docker-compose up -d + docker-compose ps + fi + echo "✅ Deployment Success!" + EOF